ID选择器中的jQuery点?

时间:2012-03-29 17:42:41

标签: jquery jquery-selectors

  

可能重复:
  How to select html nodes by ID with jquery when the id contains a dot?

我的网站包含与此类似的元素:

<p id="root.SomeCoolThing">Some Cool Thing</p>

我无法选择像$('#root.SomeCoolThing')这样的jQuery段落,因为jQuery认为,SomeCoolThing是具有id="root"的元素的类。

如何使用jQuery选择此元素?我想避免这样的结构:

$(document.getElementById('root.SomeCoolThing'))

6 个答案:

答案 0 :(得分:223)

使用jQuery selectors API中的转义规则,如下所示:

$('#root\\.SomeCoolThing') 

来自docs

  

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

答案 1 :(得分:38)

使用attr作品:

$('p[id="root.SomeCoolThing"]')

答案 2 :(得分:17)

你需要逃避特殊的角色:

$('#root\\.SomeCoolThing')

docs:

  

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

答案 3 :(得分:7)

答案 4 :(得分:4)

从臀部拍摄,但如果您无法更改元素的ID,请尝试使用此选择器:

$("p[id=root.SomeCoolThing]")

答案 5 :(得分:4)

在每个特殊字符前使用两个反斜杠

  $('#root\\.SomeCoolThing')