は、私はこのような構造を持っている:例えば、私はそれにFile 4.xlsx
で<li>
にアクセスしていますが
<div class="col-sm-6">
<h3>Fileset 1</h3>
<ul class="fileset-list">
<li><a href="#">File 1.pdf</a></li>
</ul>
<h3>Fileset 2</h3>
<ul class="fileset-list">
<li style="display: list-item;"><a href="#">File 2.doc</a></li>
<li style="display: list-item;"><a href="#">File 3.csv</a></li>
<li style="display: list-item;"><a href="#">File 4.xlsx</a></li>
</ul>
<h3>Fileset 3</h3>
<ul class="fileset-list">
<li style="display: list-item;"><a href="#">File 5.pdf</a></li>
</div>
場合はどのように私は先行を標的としh3
素子。
<br><label class="label label-default" for="searchDocuments">Search </label>
<input type="text" class="form-control" name="searchDocuments" id="searchDocuments">
<ul id="searchResults">
</ul>
<script>
$(document).ready(function(){
$('#searchClear').click(function(){
$('#searchDocuments').val("");
})
var resultsList = $('#searchResults');
var items = $('.fileset-list li');
$('#searchDocuments').keyup(function() {
var value = $(this).val().toLowerCase();
items.each(function(index) {
var innerHtmlTemp = $(this).html().toLowerCase();
if((innerHtmlTemp.indexOf(value) > -1)) {
$(this).show(500);
$(this).closest('h3').show(500); // Find closest h3 and show it
} else {
$(this).hide(500)
**$(this).closest('h3').hide(500); // Find closest h3 and hide it
}
if($.trim(value) == ""){
items.show(500);
('h3').show(); // Find all h3's and show them if the search box is empty
}
});
});
})
</script>
は、だから私はそれが他のすべての非マッチング<li>
要素を隠し見つけることに、<li>
要素を探しています:
現在、私はこのようなものを持っています。しかし、少なくとも1つのリスト項目に一致するものが見つからなければ、それらの要素の対応するタイトルを非表示にしたい。うまくいけばそれは理にかなっている。潜在的に、私はいつもsearchResults divの要素を(ハイパーリンクをそのまま残して)複製するために、これらの "一致する"結果を望むかもしれません。
感謝を与えるだろう、私はあなたを見ることができます回答は機能しますが、要素は私のために生成されます。属性を追加することはできません。残念ながらそうしなければ、私の人生は楽になります。 –
@MrDansk私は自分のソリューションを編集しました。更新されたコードをチェックすることができます。この新しいテクニックでは、HTML構造を変更する必要はありません...これがうまくいきます:) –