如何在css / js attibute选择器[attr=value]
中转义属性?
具体来说,这是正确的吗?
document.querySelector('input[name="test[33]"]')
我正在寻找这样做的“标准方式”,如果有的话,因为我不希望Sizzle使用繁重的执行回退功能
答案 0 :(得分:12)
是的,这是一种正确的方法。 Selectors Level 3 specification声明如下:
属性值必须是CSS标识符或字符串。
您问题中的示例使用字符串作为属性值。 “标识符”定义如下:
在CSS中,标识符...只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_);它们不能以数字,两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码...
所以在那之后,逃避特殊字符并省略引号也是合法的:
document.querySelector('input[name=test\\[33\\]]')