如果一个设置id属性值为几个html标签,相同的字符串会发生什么?

时间:2015-08-13 12:59:23

标签: javascript jquery html cross-browser

我最近看到一个html页面,我认为几个html标签的id是相同的,然后我意识到id是唯一的,但它提出了一个问题,如果页面实际上使用了几个标签会发生什么

因为我听说过每个html标签的id属性(如果有的话)必须是唯一的,

现在我想知道如果不是这样的话会发生什么? 它可能导致什么错误?

不同的浏览器对此问题有不同的反应吗?

使用重复ID的javascript和jquery代码是在两个标签上运行还是什么?

3 个答案:

答案 0 :(得分:1)

重复ID可以有各种不同的效果。您所经历的将取决于您尝试访问它们的方法(也可能从浏览器到浏览器)。

  • 你会影响所有人
  • 您将影响第一个
  • 您将影响最后一个
  • 您将获得一个集合而不是一个元素,尝试将其视为一个元素并获得错误

HTML中不允许使用重复的ID。不要为自己制造麻烦。使用组的类和id用于唯一标识符。

答案 1 :(得分:0)

尽快更改它们,以避免将来遇到很多麻烦。对于具有相同属性的元素,请使用 classes

关于您的疑问,

现在我想知道如果不是这样的话会发生什么?
好吧,HTML不再是有效的了。现在有一天,它并没有太大的伤害,但仍然不是首选。

可能导致哪些错误?
错误有点难以预测。但是使用jQuery,你会得到很多。

不同的浏览器对此问题有不同的反应吗?
不确定。

使用重复ID的javascript和jquery代码是在两个代码上运行还是什么?
jQuery会给你带来麻烦。考虑一种情况,您有两个具有相同ID的输入字段。 而你试着选择第二个没有注意到。 jQuery('yourID').val()您将选择第一个值。像这样有很多可能性。

答案 2 :(得分:0)

正如您所说,HTML id,根据规格,必须是唯一的。如果放置重复的id,那么相对于那些id的js行为将是不可预测的,甚至可以在2次调用之间进行更改。

任何js调用一个id(jquery与否)将指向其中一个id但没有保证:

  1. 每次通话都是一样的
  2. 2页刷新之间的顺序相同
  3. 它将在2个不同的浏览器之间具有相同的行为
  4. 在同一个浏览器的两次之间会有相同的行为
  5. 可能出现的问题取决于js代码如何直接耦合到底层元素DOM结构anw可能主要指向未定义的异常并停止执行js。