可能重复:
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'))
答案 0 :(得分:223)
使用jQuery selectors API中的转义规则,如下所示:
$('#root\\.SomeCoolThing')
来自docs:
使用任何元字符(例如
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
)作为名称的字面部分,它必须 使用两个反斜杠进行转义:\\
。例如,一个元素id="foo.bar"
,可以使用选择器$("#foo\\.bar")
。
答案 1 :(得分:38)
使用attr作品:
$('p[id="root.SomeCoolThing"]')
答案 2 :(得分:17)
你需要逃避特殊的角色:
$('#root\\.SomeCoolThing')
如果您想使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{| }〜)作为名称的文字部分,你必须用两个反斜杠转义角色:\\。例如,如果你有一个 id =“foo.bar”的元素,您可以使用选择器 $(“#foo \\。bar”)。
答案 3 :(得分:7)
你可以使用类似的东西逃脱期间
$("#root\\.SomeCoolThing")
How do I get jQuery to select elements with a . (period) in their ID? http://groups.google.com/group/jquery-en/browse_thread/thread/ba072168939b245a?pli=1
答案 4 :(得分:4)
从臀部拍摄,但如果您无法更改元素的ID,请尝试使用此选择器:
$("p[id=root.SomeCoolThing]")
答案 5 :(得分:4)
在每个特殊字符前使用两个反斜杠
$('#root\\.SomeCoolThing')