[英]Need help jQuery search filter customize
我使用jQuery创建了搜索列表过滤器。 我需要一些帮助对其进行自定义。
我有3个单独的div,在div内,我有搜索结果的列表元素。
如果搜索结果与div不匹配,我想隐藏其他人的div。 查看下面的屏幕截图-
这是完整的示例代码-
https://codepen.io/anon/pen/eGxrGR
$('#box').keyup(function() { var valThis = $(this).val().toLowerCase(); if (valThis == "") { $('.navList > li').show(); } else { $('.navList > li').each(function() { var text = $(this).text().toLowerCase(); (text.indexOf(valThis) >= 0) ? $(this).show(): $(this).hide(); }); }; });
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/css/bootstrap.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="container"> <div class="col-lg-12 "> <input placeholder="Search Me" id="box" type="text" /> </div> <div class="col-lg-12 col col-1"> <h2> My List 1 </h2> <ul class="navList "> <li>special</li> <li>apples</li> <li>apricots</li> <li>acai</li> <li>blueberry</li> <li>bananas</li> <li>cherry</li> <li>coconut</li> <li>donut</li> <li>durean</li> </ul> <ul class="navList "> <li>apples</li> <li>apricots</li> <li>acai</li> <li>blueberry</li> <li>bananas</li> <li>cherry</li> <li>coconut</li> <li>donut</li> <li>durean</li> </ul> <ul class="navList "> <li>apples</li> <li>apricots</li> <li>acai</li> <li>blueberry</li> <li>bananas</li> <li>cherry</li> <li>coconut</li> <li>donut</li> <li>durean</li> </ul> </div> <div style="clear:both"></div> <div class="col-lg-12 col col2"> <h2> My List 2 </h2> <ul class="navList"> <li>apples</li> <li>apricots</li> <li>acai</li> <li>blueberry</li> <li>donut</li> <li>durean</li> </ul> <ul class="navList"> <li>apples</li> <li>apricots</li> <li>acai</li> <li>blueberry</li> <li>donut</li> <li>durean</li> </ul> <ul class="navList"> <li>apples</li> <li>apricots</li> <li>acai</li> <li>donut</li> <li>durean</li> </ul> </div> <div style="clear:both"></div> <div class="col-lg-12 col col3"> <h2> My List 3 </h2> <ul class="navList"> <li>apples</li> <li>apricots</li> <li>cherry</li> <li>coconut</li> <li>donut</li> <li>durean</li> </ul> <ul class="navList"> <li>apples</li> <li>apricots</li> <li>acai</li> <li>coconut</li> <li>donut</li> <li>durean</li> </ul> <ul class="navList"> <li>apples</li> <li>apricots</li> <li>cherry</li> <li>coconut</li> <li>donut</li> <li>durean</li> </ul> </div> </div>
我制造了一个小提琴。 遍历列表的每个集合,并检查列表中是否有任何列表项可见。 基于此,我们可以隐藏和显示特定部分。
$(".myList").each(function(){
var anyResult = false;
$(this).find('.navList li').each(function(){
if ( $(this).is(":visible") ) {
anyResult = true;
return;
}
});
if(!anyResult) {
$(this).hide();
}
});
将myList
添加为无序列表的父类
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.