This question already has answers here:
What chars needs escaping in querySelector?
(2个答案)
2年前关闭。
正在看https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector#Escaping_special_characters
而且我听不懂这部分:
我是JavaScript的初学者,不理解为什么4个斜杠,我发现了另一个类似的问题,但是我不明白答案。
我试图在“foo \ bar”上运行
我在这里查看过类似的帖子,但答案对我来说并不明确,我正在寻找一个简单的细分解释,以了解此处发生的事情以及我确实理解(双反斜杠)和queryselector(使用4)。 您需要将反斜杠发送到 如果要在 Javascript字符串中表示反斜杠,则需要对其进行转义。让我们逃避每个反斜杠;我们得到
(2个答案)
2年前关闭。
正在看https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector#Escaping_special_characters
而且我听不懂这部分:
// "#fooar" (\b is the backspace control character)
console.log('#foo\bar');
// Does not match anything
document.querySelector('#foo\bar');
console.log('#foo\\bar'); // "#foo\bar"
console.log('#foo\\\\bar'); // "#foo\\bar"
document.querySelector('#foo\\\\bar');
<div id="foo\bar"></div>
<div id="foo:bar"></div>
我是JavaScript的初学者,不理解为什么4个斜杠,我发现了另一个类似的问题,但是我不明白答案。
我试图在“foo \ bar”上运行
document.getElementById
,它可以用2个斜杠正常工作,这对我来说很有意义,因为您需要一个额外的反斜杠来转义第一个反斜杠,但是为什么在使用querySelector时还要额外的3个斜杠?我在这里查看过类似的帖子,但答案对我来说并不明确,我正在寻找一个简单的细分解释,以了解此处发生的事情以及我确实理解(双反斜杠)和queryselector(使用4)。
最佳答案
根据MDN Web文档,有关litteral Strings:
现在,关于 Document.querySelector
method:
Document.getElementById
不需要这样的东西(没有给出解释,可能是出于遗留原因)。现在,回到我们的问题:
将过程视为两次通过的格式,让我们将其向向后查看:
querySelector
。为了满足querySelector的要求,您需要对其进行一次转义:"#foo\\bar"
。 "#foo\\\\bar"
关于javascript - 如何理解document.queryselector中的转义字符? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52992709/
10-12 07:37