2

我有一个奇怪的行为,也许我错过了一些东西。

我有这个 DOM 元素(Sharepoint Ribbon 元素,但没关系),我想用 jQuery 按 ID 选择它:

<span class="ms-cui-row" 
id="Ribbon.EditingTools.CPEditTab.Font-Medium-0-0">...</span>

如果我用类名选择它,$('.ms-cui-row')我可以选择它,但我不能用 id 选择它$('#Ribbon.EditingTools.CPEditTab.Font-Medium-0-0')。我什至无法选择它$('[id="Ribbon.EditingTools.CPEditTab.Font-Medium-0-0"]')

那么这里有什么意义呢?在 id 名称中使用点可能不是一个好主意 - 但那是微软而不是我,我无法改变它。但对他们来说似乎没问题?

我准备了一个jsfiddle来玩。

4

3 回答 3

5

您不能.在 jQuery 选择器中使用(类选择器的开头除外),因为 jQuery 会假定它引用元素上的类。逃脱它\\

此外,jQuery 中的 id 选择器是$("#id").

您的新选择器:

$('#Ribbon\\.EditingTools\\.CPEditTab\\.Font-Medium-0-0')
于 2012-07-11T03:23:07.183 回答
2
alert($('#Ribbon\\.EditingTools\\.CPEditTab\\.Font-Medium-0-0').length)

为我工作。

于 2012-07-11T03:31:07.157 回答
2

您可以通过以下方式选择带有特殊字符的 id:

$('[id="Ribbon.EditingTools.CPEditTab.Font-Medium-0-0"]'); 演示

$('#Ribbon\\.EditingTools\\.CPEditTab\\.Font-Medium-0-0'); 演示

参考:

于 2012-07-11T03:34:03.660 回答