重复元素子的id

时间:2009-08-14 21:45:53

标签: javascript html

如果父ID不同,是否可以为元素的子元素设置与另一个元素的子元素的id相同?任何潜在的冲突?

5 个答案:

答案 0 :(得分:9)

不,元素id在整个文档中应该是唯一的。 document.getElementById()无法正常使用重复的id(显然,因为它只返回一个元素)。现在你的页面可能与重复的id一起使用,它不像浏览器会崩溃或拒绝呈现页面或任何东西,但它不是正确的HTML。

如果您需要非唯一标识符,请使用class属性。这正是用于标记具有相同名称的多个元素的原因。

答案 1 :(得分:3)

Read the spec

  

此属性[id]为元素指定名称。   此名称在文档中必须是唯一的

答案 2 :(得分:2)

这是非常糟糕的做法,可能会导致错误。更好的解决方案是使用类来区分子对象,然后从父ID下降以找到您要查找的元素。

答案 3 :(得分:1)

无论在HTML或Javascript的上下文中,ID都应始终是唯一的。使用唯一标识符可以获得更好的效果。例如,您有多个id为“foo”的元素;在document.getElementById(“foo”)中,只返回该id的第一个实例。

答案 4 :(得分:1)

如果你有不同的具有相同ID的DOM元素,那么在某些时候会导致麻烦......即使它可能有效也不要这样做。