jQuery选择器中的不一致行为

时间:2017-12-04 12:39:04

标签: javascript jquery

$('#a.b') // doesn't work

document.getElementById('a.b') // works

$('[id="a.b"]') // works

任何人都可以解释为什么$('#a.b')不起作用。

3 个答案:

答案 0 :(得分:1)

使用Jquery时,不要在Id中使用元字符。

.是一个元字符,选择器将它们视为正则表达式。你需要逃脱才能使它发挥作用。对于前\\.

在这种情况下 -

$('#a\\.b')

Javascript getElementById也有效,因为它只是一个字符串。

当您以id="a.b"给出时,它会检查一个值,并且不会被视为元字符。

答案 1 :(得分:0)

jQuery认为它是一个类。因此,您使用转义序列将其写为 -

$('#a\\.b')

答案 2 :(得分:0)

您应该使用转义运算符,如下所示:

$('#a\\.b')

jQuery不允许将元字符作为名称的文字部分,并且必须使用两个反斜杠\\进行转义。