2014-12-05 54 views
2

我目前有[src*=example],它选择包含'example'的'src'属性的所有HTML元素。是否有可能针对任何属性,几乎导致通配符的属性?是否可以使用通配属性来通配属性名称?

或多或少,它会像[(any attribute)*=example]那样会找到所有包含'example'的属性的元素。

在此先感谢!

+1

考虑对性能的影响。需要测试DOM中每个元素的每个属性。这是你不想要的功能。 :-) – 2014-12-05 23:50:55

+0

出于好奇,这需要什么?似乎必须有更好的方式来获得你所需要的东西。 – 2014-12-05 23:53:02

+0

@sixfingeredman - (我仍然熟悉JS/jQuery,并尝试编辑或可能删除页面上的某些元素) – Bryce 2014-12-06 00:05:56

回答

2

NO。到目前为止,在CSS中没有这样的选择器!


使用jQuery:

$('*').filter(function(){ 
    var selector = this; 
    return $.grep(selector.attributes, function(attr) { 
     return attr.value.indexOf('example') !==-1 }).length > 0; 
}).css('color','red'); 
+0

如果您不断尝试做他想做的事情,我可能不得不收回我的赞赏。 ;-)如果你真的想,你可以遍历每个元素的原生'.attributes'集合,并测试每个对象的'.name'和'.value'。但严重的是,不要。有人可能真的使用它!无论OP在做什么,他几乎肯定会采取错误的做法。 – 2014-12-05 23:58:33

+0

例子:'$ .each(document.body.attributes,function(i,attr){console.log(attr.name,attr.value);})' – 2014-12-05 23:59:54

+0

不,你做错了。您不需要在单个元素上使用'.each()',并且jQuery对象没有'attributes'属性。 – 2014-12-06 00:02:51

相关问题