如何通过匹配部分属性来选择带有jQuery的元素?
例如,我想匹配任何属性中包含“data-foo”的所有元素:
I'm Matched I'm Matched Too I'm Matched Too I'm Not Matched
我可以轻松地遍历所有元素并检查自己,但我不确定jQuery是否支持这种类型的选择器。
检查这个小提琴…有点在那里,但也许你可以解决这个问题
的jsfiddle
$("a").each(function(){ var element = $(this); var isItMe = 0; $(element[0].attributes).each(function() { if(this.nodeName.indexOf("data-bar") >= 0){ isItMe = 1; } }); if(isItMe == 1){ $(this).css({"color" : "red"}); } });
Satpal的答案非常好(我喜欢选择器只限于元素;这比搜索整个DOM要快一点)。
不过,我想建议您使用多个数据属性。 例如:
I'm Matched I'm Matched Too I'm Matched Too I'm Not Matched
或者课程:
I'm Matched I'm Matched Too I'm Matched Too I'm Not Matched
通过这种方式,您可以匹配一件事( data-foo
或class foo
),并获得您所需的特异性。