简体   繁体   English

需要帮助的jQuery搜索过滤器自定义

[英]Need help jQuery search filter customize

I created a search list filter with jQuery. 我使用jQuery创建了搜索列表过滤器。 I need some help to customize it. 我需要一些帮助对其进行自定义。

I have 3 separate div's, and inside div's I have list elements for Search results. 我有3个单独的div,在div内,我有搜索结果的列表元素。

I want to hide other's div if search result doesn't match from the div. 如果搜索结果与div不匹配,我想隐藏其他人的div。 Check screenshot below - 查看下面的屏幕截图-

screenshot 屏幕截图

Here is the full example code - 这是完整的示例代码-
https://codepen.io/anon/pen/eGxrGR 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> 

I have created a fiddle. 我制造了一个小提琴。 Iterating over every collection of list and checking if any list item is visible in that list or not. 遍历列表的每个集合,并检查列表中是否有任何列表项可见。 Based on that we can hide and show particular section. 基于此,我们可以隐藏和显示特定部分。

     $(".myList").each(function(){
       var anyResult = false;
       $(this).find('.navList li').each(function(){
            if ( $(this).is(":visible") ) {
              anyResult = true;
              return;
            }
        });
       if(!anyResult) {
         $(this).hide();
       }
     });

Added myList as class of Parent of unordered list myList添加为无序列表的父类

https://jsfiddle.net/qzszsg4s/ https://jsfiddle.net/qzszsg4s/

Updated Fiddle https://jsfiddle.net/qzszsg4s/1/ 更新了小提琴https://jsfiddle.net/qzszsg4s/1/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM