ID选择器中的jQuery点? [复制]

Posted

技术标签:

【中文标题】ID选择器中的jQuery点? [复制]【英文标题】:jQuery dot in ID selector? [duplicate] 【发布时间】:2012-04-13 09:45:51 【问题描述】:

可能重复: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认为SomeCoolThingid="root"元素的类。

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

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

【问题讨论】:

***.com/questions/605630/… 虽然有双 `\\` 的解决方案。为什么要在 id 中加一个点? 好吧,这个网站不是我做的。我也不喜欢 ID 名称。更准确地说,它是一个 API 文档。 没有什么可怕的——根据规范,它是一个完全有效的选择器。 mathiasbynens.be/notes/html5-id-class 【参考方案1】:

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

$('#root\\.SomeCoolThing') 

来自docs:

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

【讨论】:

啊,我明白了。尝试使用一个不起作用的反斜杠。谢谢! 我试过 $('#root\\.SomeCoolThing'),它有效。但是当我尝试使用双引号 $("#root\\.SomeCoolThing") 时,它不起作用。你知道 jQuery 中单引号和双引号的区别吗? 这对我不起作用,我的 id 中有两个或更多点。 @charlietfl 请注意,带反斜杠的点表示法要快得多:jsperf.com/jquery-selectors-perf-test【参考方案2】:

您需要转义特殊字符:

$('#root\\.SomeCoolThing')

docs:

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

【讨论】:

【参考方案3】:

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

  $('#root\\.SomeCoolThing')

【讨论】:

【参考方案4】:

使用 attr 工作:

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

【讨论】:

'One-liners' 有时不够用。用一句简单的话解释你的想法…… 这也是 jQuery 部分不必要的大量额外处理,您真正需要做的就是转义“.”。字符... @Ian。当您事先不知道 id 时,它很有用。它可能是您从 json 对象中获取的变量。【参考方案5】:

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

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

【讨论】:

不是没有"":错误:语法错误,无法识别的表达式:p[id=details_it.airgap.vault]`【参考方案6】:

你可以使用类似这样的东西来逃避期间

$("#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

【讨论】:

以上是关于ID选择器中的jQuery点? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery的选择器中的通配符

jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结

jQuery的选择器中的通配符[id^='code']

jQuery的选择器中的通配符[id^='code']

jQuery的选择器中的通配符使用介绍

jQuery的选择器中的通配符