У меня есть такой список:
<ul>
<li class="folder">Foder A</li>
<ul>
<li>Item 1A</li>
<li>Item 2A</li>
<li>Item 3A</li>
</ul>
<li class="folder">Foder B</li>
<ul>
<li class="folder">Sub-Foder C</li>
<ul>
<li>Item 1C</li>
</ul>
<li>Item 1B</li>
<li>Item 2B</li>
<li>Item 3B</li>
</ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
А вот этот "поисковый" скрипт:
$(document).ready(function() {
$("input[type='search']").keyup(function() {
var filter = $(this).val();
$("ul li").each(function() {
if ($(this).text().search(new RegExp(filter, "i")) < 0) {
$(this).hide();
}
else {
$(this).show();
}
});
});
});
Но он фильтрует все <li>s
и, конечно, скрывает даже "папки".
Как показывать родительский <li class="folder">
, который содержит результаты поиска?