我知道在HTML/XHTML页面中id必须是唯一的。
对于一个给定的元素,我可以给它分配多个id吗?
<div id="nested_element_123 task_123"></div>
我意识到我有一个简单的解决方案,只需使用一个类。我只是好奇以这种方式使用id。
我知道在HTML/XHTML页面中id必须是唯一的。
对于一个给定的元素,我可以给它分配多个id吗?
<div id="nested_element_123 task_123"></div>
我意识到我有一个简单的解决方案,只需使用一个类。我只是好奇以这种方式使用id。
当前回答
不。每个DOM元素(如果它有id)都有一个唯一的id。你可以用以下方法来近似:
<div id='enclosing_id_123'><span id='enclosed_id_123'></span></div>
然后使用导航来得到你真正想要的东西。
如果你只是想应用样式,类名会更好。
其他回答
ID应该是唯一的,所以您应该在一个页面上只使用特定ID一次。类可以重复使用。
查看HTML id属性(W3Schools)了解更多详细信息。
与别人说的相反,正确的答案是肯定的
Selectors规范对此非常清楚:
如果一个元素有多个ID属性,为了ID选择器的目的,所有这些属性都必须被视为该元素的ID。这种情况可以混合使用xml:id、DOM3 Core、xml dtd和特定于名称空间的知识来实现。
Edit
澄清一下:是的,一个XHTML元素可以有多个id,例如:
<p id="foo" xml:id="bar">
但是使用空格分隔的列表将多个id分配给同一个id属性是不可能的。
从7.5.2元素标识符:id和class属性:
id属性为元素赋值唯一标识符 由SGML解析器验证)。
and
ID和NAME标记必须以字母([a- za -z])开头,并且可以是 后面跟着任意数量的字母,数字([0-9]),连字符(“-”), 下划线(“_”),冒号(“:”)和时间(“。”)。
所以“id”必须是唯一的,不能包含空格。
不,如果你想沿着那条路径走,你应该使用嵌套的div。此外,即使您可以,想象一下当您运行document.getElementByID()时它会引起的混乱。如果有多个ID,它会抓取哪个ID ?
在稍微相关的主题中,您可以向DIV中添加多个类。
http://meyerweb.com/eric/articles/webrev/199802a.html
每个元素只能有一个ID,但确实可以有多个类。但不要有多个类属性;将多个类值放入一个属性中。
<div id="foo" class="bar baz bax">
完全合法。