为什么我必须用四个反斜杠而不是两个写反斜杠?

时间:2018-11-24 13:06:59

标签: javascript dom jsdom

我想编写类似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>

1 个答案:

答案 0 :(得分:2)

JavaScript字符串语法使用反斜杠作为特殊字符的转义机制。为了使字符串以反斜杠结尾,您必须将其加倍。

然后,querySelector()的CSS选择器语法 还将反斜杠字符用作特殊的转义序列开头,因此,这又是相同的事情。

因此,解析字符串会将反斜杠减少为两个,然后解释选择器将导致querySelector()仅查找单个反斜杠。