我想知道html5元素是否可以有两个id,如下所示:
<button id="thing1" id="thing2" name="Button1" onclick="change()">Click here</button>
或者这个:
<button id="thing1, thing2" name="Button1" onclick="change()">Click here</button>
另外,如果其中一个id说了一件事,而另一个id说了另一件事,哪一个会被使用?
答案 0 :(得分:5)
TL; DR :否。
在所有HTML版本中,每个元素只能有一个id。见the spec:
id属性指定其元素的唯一标识符(ID)。 [DOM]
该值必须在元素的主子树中的所有ID中唯一,并且必须至少包含一个字符。 该值不得包含任何空格字符。
注意:ID可以采取的形式没有其他限制;特别是, ID只能由数字组成,以数字开头,以下划线开头,仅包含标点符号等。
注意:元素的唯一标识符可用于各种目的,最明显的是作为使用片段标识符链接到文档的特定部分的方法,作为在编写脚本时定位元素的方法,并作为一种方式设置CSS中的特定元素。
标识符是不透明的字符串。不应从id属性的值派生特定含义。
在您给出的示例中,解析器只读取第一个id。如果你试过这个:
<button id="thing1,thing2" name="Button1" onclick="change()">Click here</button>
(id
中没有空格),您仍然只有一个ID,其中包含逗号:thing1,thing2
。
注意:没有理由要求两个id
值不适合使用class
或以其他方式存储数据。例如,in jQuery, you can do $('#some_id').data('foo', 'bar');
用于保存名为foo
且值为bar
的数据,并将其与ID为some_id
的元素相关联。无论如何,类和数据存储通常比id更灵活。
编辑:请记住,类不仅适用于CSS。你可以<button id="thing1" class="thing2 thing3 thing42"...>
使用javascript(无论是普通的还是使用类似jQuery的库)来通过一个或多个类来访问按钮。类名对于项是唯一的,不必在别处使用或在CSS文件中提及。
这是a link到一个jsFiddle示例,说明了在一起使用时类和id有多强大。
答案 1 :(得分:2)
简短回答:否
您应该使用class
- 属性。