20

需要知道一个 HTML 元素是否可以具有多个 ID 属性,例如:

<input type="text" id="identifier1" id="selector1" />

因为我需要澄清W3 网站上提到的关于选择器的声明。

如果一个元素具有多个 ID 属性,则出于 ID 选择器的目的,所有这些属性都必须被视为该元素的 ID。这种情况可以通过混合使用 xml:id、DOM3 Core、XML DTD 和特定于名称空间的知识来实现​​。

人们所指的可能重复项说明了此语法的问题

<input type="text" id="identifier1 selector1" />

这与我要问的语法不同。

4

6 回答 6

28

需要知道一个 HTML 元素是否可以有多个 ID 属性

简短的回答?不,因为浏览器只会呈现第一个。

看到这个 Fiddle,我只能使用idDOM 中出现的第一个在 CSS 中定位它。尝试将 CSS 选择器更改为使用第二个id,它不起作用。

这是因为浏览器似乎忽略了第二个 ID,因为这是输出 HTML:

<input type="text" id="identifier1">

如果你真的需要一个元素上的额外标识符,你应该考虑使用多个类名或数据属性来对应额外的数据。

于 2013-06-05T09:26:42.147 回答
6

需要知道一个 HTML 元素是否可以有多个 ID 属性

不可以。HTML 中的任何元素都不能有多个给定属性的实例。

因为我需要澄清这个声明

请注意该声明中的最后一句话。

另请注意,“ID 属性”的 CSS 理念不是“具有名称的属性id”。还引用该文件:

文档语言可能包含声明为 ID 类型的属性

只有id属性是 HTML 中的 ID 类型。

于 2013-06-05T09:24:14.737 回答
4

不,即使您指定了多个 id,也会使用第一个遇到的 id 属性。

可能的重复:

一个html元素可以有多个id吗?

于 2013-06-05T09:28:13.050 回答
1

html元素的ID不能相同,但是Classes是用于多个元素的,一个元素可能有多个类

于 2013-06-05T09:27:04.007 回答
1

不,因为一个属性不能在标签中重复。这是 HTML 中的一般规则,不限于id属性。对于名义上基于 SGML 的 HTML 版本和 XHTML,这遵循一般的 SGML 和 XML 规则。对于 HTML 序列化的 HTML5,请参阅HTML5 CR,8.1.2.3 属性

很难理解为什么要使用重复的id属性,所以我不能提出解决方法。一般来说,对于id属性的任何正常使用,每个元素一个属性就足够了。

于 2013-06-05T09:51:51.540 回答
0

不可以。元素 ID 在整个文档中应该是唯一的。

于 2013-06-05T09:26:29.863 回答