如何在css / js属性选择器[attr = value]中正确转义属性值?

时间:2012-12-21 10:01:56

标签: javascript css css-selectors selectors-api

如何在css / js attibute选择器[attr=value]中转义属性?

具体来说,这是正确的吗?

document.querySelector('input[name="test[33]"]')

我正在寻找这样做的“标准方式”,如果有的话,因为我不希望Sizzle使用繁重的执行回退功能

1 个答案:

答案 0 :(得分:12)

是的,这是一种正确的方法。 Selectors Level 3 specification声明如下:

  

属性值必须是CSS标识符或字符串。

您问题中的示例使用字符串作为属性值。 “标识符”定义如下:

  

在CSS中,标识符...只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_);它们不能以数字,两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码...

所以在那之后,逃避特殊字符并省略引号也是合法的:

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