Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么过滤功能在li上不起作用?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么过滤功能在li上不起作用?

Javascript 为什么过滤功能在li上不起作用?,javascript,jquery,Javascript,Jquery,嗨 我正在尝试使用仅筛选功能筛选我的li。我有一个按钮(筛选文本)。当我单击按钮时,我只想显示具有类abc的li。我这样尝试 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <script src="https://code.jquery.com/

我正在尝试使用筛选功能筛选我的
li
。我有一个按钮(筛选文本)。当我单击按钮时,我只想显示具有类
abc
li
。我这样尝试

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <script src="https://code.jquery.com/jquery-2.0.3.js"></script>
    <style>
        ul {
            list-style: none;
            cursor: pointer;

        }

        .tabItem li {
            float: left;
            padding: 20px;
        }

        .tabItem li.active {
            color: red;
        }

        .clear {
            clear: both;
        }

        .hideDiv{
            display: none;
        }

    </style>
</head>
<body>


<button class="filter">filler</button>
<ul class="item">
    <li class="äbc">123</li>
    <li class="pp">12</li>
    <li class="äbc">78</li>
    <li class="äc">13</li>
</ul>
<script>
    $(function () {


        $('.filter').click(function () {
            var $items = $('.item li');
            //$items.hide().filter(filterClasses.join('')).show();
            var $newItem =$items.filter(function (i,item) {
                console.log(i)
                console.log(item)
                return $(item).hasClass('abc')
            })
            $($newItem).show();
        });

    });
</script>
</body>
</html>
就用,

$('.item li[class=abc]').show(); // Let it is abc not äbc
$(函数(){
$('.filter')。单击(函数(){
$('.item li').hide();//首先隐藏所有
$('.item li[class=abc]').show();//然后仅显示具有abc类的
});
});
ul{
列表样式:无;
光标:指针;
}
李先生{
浮动:左;
填充:20px;
}
.tabItem li.active{
颜色:红色;
}
.清楚{
明确:两者皆有;
}
希迪夫先生{
显示:无;
}

填料
  • 123
  • 12
  • 78
  • 13

请记住,äbcabc是不相等的。我猜你的意思是说类名称是abc,如果是这样的话,这里有一个快速的解决方案。希望有帮助

$(函数(){
$('.filter')。单击(函数(){
变量$items=$('.item li');
var$newItem=$items.filter(函数(i,项){
return!$(item).hasClass('abc');
});
$($newItem.hide();
});
});
ul{
列表样式:无;
光标:指针;
}
李先生{
浮动:左;
填充:20px;
}
.tabItem li.active{
颜色:红色;
}
.清楚{
明确:两者皆有;
}
希迪夫先生{
显示:无;
}

填料
  • 123
  • 12
  • 78
  • 13

您需要隐藏未过滤的li,请尝试以下操作


保险商实验室{
列表样式:无;
光标:指针;
}
李先生{
浮动:左;
填充:20px;
}
.tabItem li.active{
颜色:红色;
}
.清楚{
明确:两者皆有;
}
希迪夫先生{
显示:无;
}
填料
  • 123
  • 12
  • 78
  • 13
$(函数(){ $('.filter')。单击(函数(){ 变量$items=$('.item li'); //$items.hide().filter(filterClasses.join(“”)).show(); var$newItem=$items.filter(“.bc”); $($items.hide(); $($newItem.show(); }); });
尝试使用$items.not('.abc').hide()来实现所需

$(function() {
  $('.filter').click(function() {
    var $items = $('.item li');
    $items.not('.abc').hide();
  });
});

以下是工作代码:

  • äbc
  • !=
    abc
    。你能分享赃物吗查看此
    $($newItem).show()不会执行任何操作。我想使用筛选功能使用筛选选项尝试我的更新答案和代码段。
    
    $(function() {
      $('.filter').click(function() {
        var $items = $('.item li');
        $items.not('.abc').hide();
      });
    });