我有以下代码将活动类添加到选定的div:
$("div #"+ myID).addClass( "active" );
这仅在myID是一个单词时有效,当myID中有空格时,代码坏了,我试图用引号包装myID,不起作用。
很多内容都有div id和space,因为我不是内容所有者,没有控制权来纠正内容,我只能修改我的代码来处理内容。有没有办法指出div id与空格?谢谢。
问题解决了。谢谢大家: - )
答案 0 :(得分:8)
元素ID不应包含空格。
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。
来自HTML spec。
如果元素ID不受控制,请在选择器中使用\\
转义空格:
<div id="target element"></div>
$('#target\\ element').doSomething(); // escape invalid chars with \\
在您的情况下,您必须使用'\\ '
答案 1 :(得分:1)
$("div #"+ myID).addClass( "active" );
以上代码无效
HTML5全球id
属性:
id属性为HTML元素指定唯一的 id
(该值必须在HTML文档中唯一)。
id属性最常用于指向样式表中的样式,并通过JavaScript(通过HTML DOM)来操作具有特定 id
的元素。 / p>
示例:在HTML5中below id's有效。
<p id="#">Foo.</p>
<p id="##">Bar.</p>
<p id="♥">Baz.</p>
<p id="©">Inga.</p>
<p id="{}">Lorem.</p>
<p id="“‘’”">Ipsum.</p>
<p id="⌘⌥">Dolor.</p>
<p id="{}">Sit.</p>
<p id="[attr=value]">Amet.</p>
<p id="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.">Hello world!</p>
在jQuery中: jQuery确实处理任何有效的 ID 名称。我们只需要转义元字符(点,分号,方括号等)。 (比如引号有问题的java脚本)。
虽然在jQuery中使用 id 具有以下限制。
// Does not work
$("#some:id")
// Works!
$("#some\\:id")
// Does not work
$("#some.id")
// Works!
$("#some\\.id")