私はこの1つに固執しています。私は入力フィールドを持っており、結果をフィルタリングしたい。私が今使っている次の関数。私は次のことをやりたいjQueryライブのフィルタリングリストの親と子供
$('input[type="text"]').keyup(function() {
var that = this,
$allListElements = $('ul.bare-list > li');
var $matchingListElements = $allListElements.filter(function(i, li) {
var listItemText = $(li).text().toUpperCase(),
searchText = that.value.toUpperCase();
return ~listItemText.indexOf(searchText);
});
$allListElements.hide();
$matchingListElements.show();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="brand-container">
<dl class="brands-letter letter-a" data-letter="letter-a">
<dt>A</dt>
<dd>
<ul class="bare-list">
<li class="brand-item">item 1</li>
<li class="brand-item">item 2</li>
<li class="brand-item">item 3</li>
</ul>
</dd>
</dl>
<dl class="brands-letter letter-b" data-letter="letter-b">
<dt>B</dt>
<dd>
<ul class="bare-list">
<li class="brand-item">item 1</li>
<li class="brand-item">item 2</li>
<li class="brand-item">item 3</li>
</ul>
</dd>
</dl>
</div>
。 <input>
フィールドの値に基づいてフィルタリングするとき、すべての子が'display: none'
に設定されているかどうかをチェックしたいと思います。もしそうなら、私は親を隠そうとします.brands-letter
。
私はこれをどのように処理することができますか?