我有一些列表项,我想使用选择来过滤数据属性是否具有所有选择选项值,而不仅仅是它具有一个或另一个。
<li class="filterme" data-type="Primary Academy Physical KS1">item 1</li>
<li class="filterme" data-type="Secondary Academy Physical KS2">item</li>
<li class="filterme" data-type="Secondary Academy Physical KS1">item 1</li>
<li class="filterme" data-type="Academy Physical KS1">item 1</li>
Run Code Online (Sandbox Code Playgroud)
我有一些选择框触发 onchange 事件,该事件首先隐藏所有项目
$('.filterme').hide();
Run Code Online (Sandbox Code Playgroud)
然后我想显示数据属性是否包含传递给它的所有值。我试过
$(".filterme[data-type*='" + Secondary && Physical && KS1 + "']").show();
Run Code Online (Sandbox Code Playgroud)
我想展示这个
<li class="filterme" data-type="Secondary Academy Physical KS1">item 1</li>
Run Code Online (Sandbox Code Playgroud)
但它没有显示任何匹配项,我可以让它仅使用一个值,但如何检查数据属性是否包含多个值,而不是“或”而是“与”?
谢谢
另一种选择是使用多个选择器,然后对其进行过滤。
项目 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
}
Run Code Online (Sandbox Code Playgroud)