我使用以下代码将活动类添加到选定的div中:
$("div #"+ myID).addClass( "active" );这只在myID是一个单词时有效,当myID中有空格时,代码崩溃,我试图用引号将myID括起来,但不起作用。
许多内容都有带空格的div id,因为我不是内容所有者,无法控制更正内容,我只能修改我的代码来处理内容。有没有办法用空格指向div id?谢谢。
问题解决了。感谢所有人:-)
发布于 2012-04-20 01:40:05
$("div #"+ myID).addClass( "active" );上面的代码不是有效的
id HTML5全局属性:
id属性为HTML元素指定唯一的id (该值在HTML文档中必须是唯一的)。
id属性最常用于指向样式表中的样式,并由JavaScript (通过HTML DOM)操作具有特定id的元素。
HTML
示例: 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名称。我们只需要转义元字符(点、分号、正方形brackets...etc)。(就像java-script有引号问题一样)。
而在jQuery中使用id有以下限制。
// Does not work
$("#some:id")
// Works!
$("#some\\:id")
// Does not work
$("#some.id")
// Works!
$("#some\\.id")请参阅reference here
发布于 2012-04-20 00:44:23
元素ID%s不应包含空格。
ID和名称令牌必须以字母(A-Za-z)开头,后面可以是任意数量的字母、数字(0-9)、连字符("-")、下划线("_")、冒号(":")和句点(".")。
来自超文本标记语言spec。
如果元素ID不在您的控制范围内,请在选择器中使用\\转义空格:
<div id="target element"></div>
$('#target\\ element').doSomething(); // escape invalid chars with \\在您的例子中,您必须用'\\ '替换myID中的空格
https://stackoverflow.com/questions/10232788
复制相似问题