在jQuery中使用选择器时,我遇到了在变量中找到的转义字符(即句点)的问题。我打算全部输入,但是在Chrome中我的控制台窗口截图更容易。
看起来变量和明文版本匹配。我希望$('#'+escName)
返回div,就像$('#jeffrey\\.lamb')
返回div一样。它不是。为什么呢?
答案 0 :(得分:1)
您必须考虑将检查字符串值的各个解析器。当然,第一个是JavaScript解析器本身。反斜杠字符在字符串语法中有意义,因此如果您想在字符串中使用单个反斜杠,则需要加倍。
将字符串从源代码解析为内部字符串值之后,接下来要注意其内容(在本例中)是CSS选择器评估程序(Sizzle或本机{{1代码;不确定哪些字符串有这样的转义)。该代码只需要一个反斜杠来引用querySelector
,以便它不被解释为引入类名匹配。
因此,在这种情况下,您只需要.
。