DOM元素是否可以包含包含空格的ID?

时间:2009-09-08 03:26:00

标签: jquery dom

如果是这样,你如何选择jQuery?即,$("#a b")使用<b>查找节点内的所有id=a个节点。

4 个答案:

答案 0 :(得分:30)

根据HTML 4.0 specification for basic types

  

ID和NAME令牌必须以a开头   信([A-Za-z]),可以遵循   任意数量的字母,数字   ([0-9]),连字符(“ - ”),下划线   (“_”),冒号(“:”)和句号   ( “”)。

即使空格有效,带有空格的id属性也会被jQuery解释为具有当前选择器语法的ancestor descendant selector

答案 1 :(得分:9)

简短的回答是否定的。字母,数字,下划线,连字符,句号和冒号。

(dar,karim打败了我。)

答案 2 :(得分:9)

虽然这是一个老问题,但我认为我会在HTML 5规范上分享有关那些遇到此问题的人的信息,就像我在问到这些问题几年后所做的那样。

根据HTML 5 Spec

  

该值必须在元素的主子树中的所有ID中唯一,并且必须至少包含一个字符。该值不得包含任何空格字符。

它还说:

  

ID可以采取什么形式没有其他限制;特别是,ID可以只包含数字,以数字开头,以下划线开头,仅包含标点符号等。

答案 3 :(得分:4)

这是一个类比的论据。

考虑CLASS选择器。 与ID 不同,但有相似之处。

你显然不能拥有带嵌入空间的 class 名称,因为类列表

<p class='a b c'>some text</p>

无法与带空格的单个名称区分开来。

好吧,你不能有一个id名列表,无论如何,所以这个比喻分崩离析,但我想我们已经变得太快了,试图插入空间而不是属于