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