我有一个在数据属性中使用数组的 html 元素
<div data-area='["North America", "United Kingdom"]'>Test</div>
我有多个属于不同“事物”的数据属性
<div data-area='["North America", "United Kingdom"]' data-job='["Programmer","Scientist"]'>test</div>
如何根据 1 个值搜索整个元素的所有数据属性标签?
我正在尝试使用选择器而不是遍历每个数据属性,这可能吗?
这是一个例子加上我尝试过的 fiddle 。
// search all data attributes of a div element that contains the given value and apply a hidden class
// this should search every data attribute for "Programmer"
$('[data-*="Programmer"]').addClass('hidden');
最佳答案
我只能想到这个解决方案:
$('body *').addClass(function() {
var data = $(this).data();
for (var i in data) if (data.hasOwnProperty(i)) {
if (data[i].indexOf('Programmer') > -1) {
return;
}
}
return 'hidden';
});
它不是最优的,因为它遍历所有 DOM 节点,但我没有看到其他方法来选择具有 data-*
属性的所有节点。
如果有一些关于应该检查哪些节点的更精确的标准 - 强烈建议相应地更改选择器(而不是 body *
)
关于javascript - 有没有办法根据单个值在 html 元素的多个数据属性中搜索数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17202581/