2012-12-21 162 views

回答

9

是的,這是一個正確的希望灒做法。 Selectors Level 3 specification指出以下內容:

屬性值必須是CSS標識符或字符串。

您問題中的示例使用字符串作爲屬性值。 「標識符」的定義如下:

在CSS中,標識符...只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高版本,再加上連字符( - )和下劃線(_);他們不能以數字,兩個連字符或連字符後跟數字開頭。標識符也可以包含轉義字符和任何ISO 10646字符作爲一個數字代碼...

所以下面的是,它也是合法的逃避特殊字符和省略報價:

document.querySelector('input[name=test\\[33\\]]') 
+0

太棒了!謝謝你的答案和報告規範 – skyline26

+0

@toPeerOrNotToPeer - 不客氣,很高興我可以幫助:) –

+0

@JamesAllardice是否有任何函數(用戶定義)來轉義值? 'document.querySelector('[name =''+ escapeattr(value)+'「]')'謝謝 – skyline26