Javascript 为什么jquery id选择器不支持特殊字符

Javascript 为什么jquery id选择器不支持特殊字符,javascript,jquery,Javascript,Jquery,使用特殊字符查找元素时,如下面的$(“#search@”)将发生异常。如何解决? 我尝试过使用所有特殊字符,但它使用的是*字符,比如$(“#search*”),没有任何错误,但是其他\$%^&(会抛出错误。那么为什么它接受*字符,而另一个字符不接受呢。如果您有id的特殊字符,访问它们时,应使用\\(两个反斜杠)将其转义。但据我所知,这只允许使用html5 如jquery 要使用任何元字符(例如 !“#$%&'()*+,./:;?@[]^`{124;}~)作为名称的文字部分,它必须 使用两个反斜杠

使用特殊字符查找元素时,如下面的
$(“#search@”)
将发生异常。如何解决?
我尝试过使用所有特殊字符,但它使用的是
*
字符,比如
$(“#search*”)
,没有任何错误,但是其他
\$%^&(
会抛出错误。那么为什么它接受*字符,而另一个字符不接受呢。

如果您有
id
的特殊字符,访问它们时,应使用
\\
(两个反斜杠)将其转义。但据我所知,这只允许使用
html5

jquery

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

警报($(“#搜索\\$”).html();
试试看

$(“[id='search@']”)。单击(函数(){
$(this.html(this.id)
})


单击
不允许使用许多特殊字符()

通过查找除特殊字符以外的所有字符,仍然可以选择所需内容的一种方法是查看标签的
id
中的开头、结尾或某处包含的内容

  • 首先是:

  • 以:

  • 包含在:


  • 当然还有其他“剥猫皮”的方法-一些其他选择器选项,例如,只查找
    id
    class
    的一部分,或者可以在中找到任何其他HTML标记属性。

    检查id、class、name属性命名的标准方法。可能重复
    $('[id^="start-with"]')
    
    $('[id$="ending-part"]')
    
    $('[id*="any-spot-at-all"]')