Filter by multiple data attribute elements
attributes, jquery
Solution
Try like this
$(".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`
Problem
I've got some list items i want to filter using selects if the data attribute has all of the select option values not just if it has one or another. ``` <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> ``` I have some select boxes firing an onchange event which first hides all items ``` $('.filterme').hide(); ``` And i then want to show if a data attribute contains all values passed to it. I tried ``` $(".filterme[data-type*='" + Secondary && Physical && KS1 + "']").show(); ``` Which i want to show this one ``` <li class="filterme" data-type="Secondary Academy Physical KS1">item 1</li> ``` But it doesnt show any matches I can get it to work with just one value, but how do i check if a data attribute contains multiple values, not OR but AND? thanks