为什么这个jquery选择器没有句点工作

Nic*_*nto 18 jquery jquery-selectors

我有一个带ID的div

<div id="updates-pane-user.followed_on">
Run Code Online (Sandbox Code Playgroud)

这个jquery选择器工作

$("[id^='updates-pane']")
Run Code Online (Sandbox Code Playgroud)

但事实并非如此

$("#updates-pane-user.followed_on")
Run Code Online (Sandbox Code Playgroud)

我没有看到有什么问题.身份证名称可以包括句号吗?我错过了一些明显的东西吗

Jim*_*mbo 31

在后一个选择器中,.用于表示一个类.所以它正在寻找这个.followed_on类,它显然没有找到,因此没有任何匹配.

为了解决这个问题,我认为你应该用双反斜杠来逃避点:

$("#updates-pane-user\\.followed_on")

根据jQuery文档:

要使用任何元字符(例如!"#$%&'()*+,./:; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\\.例如,id ="foo.bar"的元素可以使用选择器$("#foo \\.bar").

一般情况下,尽量不要在ID中使用句点或其他特殊字符以避免混淆."允许"与"良好做法"不同.