如何通过匹配部分属性来选择带有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 ),并获得您所需的特异性。