Несмотря на то, что есть дубликаты, они были очень многословны, поэтому я решил опубликовать несколько более коротких версий:
Вы можете фильтровать - если вам нужно, измените zoneid и value на vars и оберните в функцию:
jQuery с ES6 скрипкой
$("div").filter(
(_, div) => (
Array.from(div.attributes).filter( // Array from NamedNodeMap
(item) => item.name.indexOf("zoneid") !== -1 && item.value !== "10")
).length > 0
)
.addClass("red")
.red {
background-color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-xxxxx-zoneid="10">
XXXXXX 10
</div>
<div data-xxxx-something-else="z" data-xxxxx-zoneid="20">
XXXXXX 20
</div>
<div data-yyy-zoneid="10">
yyy 10
</div>
<div data-yyy-zoneid="30">
yyy 30
</div>
jQuery для старых браузеров fiddle
$("div").filter(function() {
var namedNodeMap = this.attributes;
for (var i = 0; i < namedNodeMap.length; i++) {
var item = namedNodeMap.item(i);
if (item.name.indexOf("zoneid") !== -1 && item.value !== "10") {
return true
}
}
})
.addClass("red")
.red {
background-color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-xxxxx-zoneid="10">
XXXXXX 10
</div>
<div data-xxxx-something-else="z" data-xxxxx-zoneid="20">
XXXXXX 20
</div>
<div data-yyy-zoneid="10">
yyy 10
</div>
<div data-yyy-zoneid="30">
yyy 30
</div>