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