我想编写类似document.querySelector('#foo \ bar');的代码而且不起作用
<div id="foo\bar"></div>
<div id="foo:bar"></div>
<script>
document.querySelector('#foo\\\\bar'); // Match the first div
document.querySelector('#foo\\:bar'); // Match the second div
</script>
答案 0 :(得分:2)
JavaScript字符串语法使用反斜杠作为特殊字符的转义机制。为了使字符串以单反斜杠结尾,您必须将其加倍。
然后,querySelector()
的CSS选择器语法 还将反斜杠字符用作特殊的转义序列开头,因此,这又是相同的事情。
因此,解析字符串会将反斜杠减少为两个,然后解释选择器将导致querySelector()
仅查找单个反斜杠。