按多个数据属性元素过滤
如果数据属性具有所有选择选项值,我有一些我想要使用选择过滤的列表项,而不仅仅是它有一个或另一个。
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 }