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

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

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

现在我想知道如果不是这样的话会发生什么?

它可能导致哪些错误?

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

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

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

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

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

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

关于您的查询,

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

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

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

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

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

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

  1. 每次通话都是一样的
  2. 它将在2页刷新之间具有相同的顺序
  3. 它将在2个不同的浏览器之间具有相同的行为
  4. 它将在同一浏览器的2次之间具有相同的行为

可能出现的问题取决于js代码如何紧密耦合到底层元素DOM结构anw可能主要指向未定义的exception并停止js执行。