选择一个dom元素与jQuery不能使用此ID?

时间:2012-07-11 03:20:13

标签: javascript jquery dom jquery-selectors

我有一种奇怪的行为,也许我错过了什么。

我有这个DOM元素(Sharepoint Ribbon Element,但无关紧要)我想用ID选择jQuery:

<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 来玩。

3 个答案:

答案 0 :(得分:5)

你不能在jQuery选择器中有.(除了在类选择器的开头),因为jQuery会假设它引用了元素上的类。用\\转义它。

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

您的新选择器:

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

答案 1 :(得分:2)

alert($('#Ribbon\\.EditingTools\\.CPEditTab\\.Font-Medium-0-0').length)

适合我。

答案 2 :(得分:2)

您可以使用以下方式选择具有特殊字符的ID:

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

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

参考文献: