javascript - jquery动态过滤列表

标签 javascript jquery html

我正在尝试在按键上创建一个过滤器列表。例如,如果我在输入 "It" 中写入,则与该输入值不匹配的元素将被隐藏。我不确定我对下面的代码的想法是否能完成这项工作。任何提示将不胜感激!

$('ul li ul li').addClass('displayNone');

var geInputValue = $('input').val();
var getInputLength = $('input').length;

function sortDynamically(){
  $('input').on('keypress', function(){
    for(var i=0; i < getInputLength; i++){
      if(getInputValue === $('li').text){
        // remove everything that doesnt match input value
        $('li').siblings().addClass('displayNone');
      }
      else{
        $('li').siblings().removeClass('displayNone');
  });
}
    
sortDynamically();
ul, li{
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.displayNone{
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<ul class="list">
  <li>Item</li>
  <li>Product
    <ul>
      <li>Bike</li>
    </ul>
   </li>
  <li>About</li>
 </ul>

最佳答案

此代码根据您键入的内容进行过滤。如果文本输入中没有任何内容,则显示所有内容。

$('input').on('keypress keyup', function(){
    var value = $(this).val().toLowerCase();
    if (value != '') {
  
      $('.list > li').each(function () {
        if ($(this).text().toLowerCase().indexOf(value) > -1) {
          $(this).removeClass('displayNone');  
        } else {
          $(this).addClass('displayNone');
        }
      });
    } else {
      $('.list > li').removeClass('displayNone');
    }
});
ul, li{
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.displayNone{
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<ul class="list">
  <li>Item</li>
  <li>Product
    <ul>
      <li>Bike</li>
    </ul>
   </li>
  <li>About</li>
 </ul>

关于javascript - jquery动态过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36809450/

相关文章:

html - 如何在Div后台添加元素目录下的Video

javascript - 单击时更改背景图像

php - XmlHTTP请求 : "XML Parsing Error: no element found"

javascript - 如何使用不同的方法来检测 JavaScript 中的按钮点击?

php - 无法保存 12 ÷ 5 等数据

jQuery ajax XML Http 请求不起作用

JavaScript添加元素方法加倍不添加

javascript - 在 ASP Gridview 删除命令中使用 JavaScript 提示来存储 "Reason for Deletion"

javascript - 如何使用 CSS 让输入文本字段更改颜色?

javascript - 将弹出窗口中的无序列表填充到主窗口中 - javascript