按多个数据属性元素过滤

如果数据属性具有所有选择选项值,我有一些我想要使用选择过滤的列表项,而不仅仅是它有一个或另一个。

  • item 1
  • item
  • item 1
  • item 1
  • 我有一些选择框触发onchange事件,首先隐藏所有项目

     $('.filterme').hide(); 

    然后我想显示数据属性是否包含传递给它的所有值。 我试过了

     $(".filterme[data-type*='" + Secondary && Physical && KS1 + "']").show(); 

    我要展示这个

     
  • item 1
  • 但它没有显示任何匹配我只能使用一个值,但我如何检查数据属性是否包含多个值,而不是OR但是AND?

    谢谢

    试试这样吧

     $(".filterme").each(function() { if ($(this).data("type").indexOf("Secondary") > -1 && $(this).data("type").indexOf("Physical") > -1 && $(this).data("type").indexOf("KS1") > -1) { console.log($(this).data("type")); } }) 

    DEMO

    另一种选择是使用多个选择器然后对它们进行过滤。

    第1项 等等

    然后你可以过滤:

     // data-type1 AND data-type-2 if ($(this).find('[data-type1="Primary"][data-type-2="Academy"]').length) { //stuff } // data-type1 OR data-type-2 if ($(this).find('[data-type1="Primary"],[data-type-2="Academy"]').length) { //stuff }