![](/img/trans.png)
[英]add attributes dynamically to the html element based on Index value in the element
[英]Is there a way to search an array inside multiple data attributes of an html element based on a single value?
我有一个html元素,该元素在data属性内使用数组
<div data-area='["North America", "United Kingdom"]'>Test</div>
我具有与不同“事物”有关的多个数据属性
<div data-area='["North America", "United Kingdom"]' data-job='["Programmer","Scientist"]'>test</div>
如何基于1值搜索整个元素上的所有数据属性标签?
我正在尝试使用选择器,而不是遍历每个数据属性,这可能吗?
这是一个例子,再加上我尝试过的东西。
// 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 *
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.