2014-12-05 55 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

相關問題