jQuery div addclass

时间:2012-04-19 16:43:23

标签: jquery

我有以下代码将活动类添加到选定的div:

$("div #"+ myID).addClass( "active" );

这仅在myID是一个单词时有效,当myID中有空格时,代码坏了,我试图用引号包装myID,不起作用。

很多内容都有div id和space,因为我不是内容所有者,没有控制权来纠正内容,我只能修改我的代码来处理内容。有没有办法指出div id与空格?谢谢。

问题解决了。谢谢大家: - )

2 个答案:

答案 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 \\

在您的情况下,您必须使用'\\ '

替换myID中的空格

答案 1 :(得分:1)

$("div #"+ myID).addClass( "active" );

以上代码无效

HTML5全球id属性:

id属性为HTML元素指定唯一的 id (该值必须在HTML文档中唯一)。
id属性最常用于指向样式表中的样式,并通过JavaScript(通过HTML DOM)来操作具有特定 id 的元素。 / p>

  • 必须以字母A-Z或a-z
  • 开头
  • 可以跟着:字母(A-Za-z),数字(0-9),连字符(“ - ”)和下划线(“_”)
  • 在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 名称。我们只需要转义元字符(点,分号,方括号等)。 (比如引号有问题的java脚本)。

虽然在jQuery中使用 id 具有以下限制。

// Does not work
 $("#some:id")

 // Works!
 $("#some\\:id")

 // Does not work
 $("#some.id")

 // Works!
 $("#some\\.id")

请参阅reference here