发布在:使用 jQuery Core > 常见问题

如何通过在 CSS 符号中使用的字符来选择一个元素?

由于 jQuery 使用 CSS 语法来选择元素,因此某些字符会被解释为 CSS 符号。为了告知 jQuery 将这些字符按字面意思解释,而不是作为 CSS 符号,必须在这些字符前放置两个反斜杠来进行转义。有关更多详细信息,请参阅 选择器文档

1
2
3
4
5
6
7
8
9
10
11
// Does not work:
$( "#some:id" )
// Works!
$( "#some\\:id" )
// Does not work:
$( "#some.id" )
// Works!
$( "#some\\.id" )

在 jQuery 3.0 或更高版本中,应使用函数 jQuery.escapeSelector() 来转义此类选择器。

否则,以下函数会负责转义这些字符,并在 ID 字符串的开头放置一个“#”以方便使用

1
2
3
4
5
function escapeSelector( myid ) {
return "#" + myid.replace( /(\/|:|\.|\[|\]|,|=|@)/g, "\\$1" );
}

该函数可以使用如下方式

1
$( escapeSelector( "some.id" ) )