这个问题听起来应该是:“带有提供 ID 的 HTML 标签会成为全球可访问的 DOM 元素吗?”
答案是肯定的!
这就是它的工作方式,这也是 W3C 一开始就引入 ID 的原因。:
解析脚本环境中 HTML 标记的 ID 成为其对应的 DOM 元素句柄。
然而,Netscape Mozilla 拒绝遵守(对他们侵入)W3C 并顽固地使用已弃用的 Name 属性来造成严重破坏,因此破坏了 W3C 引入唯一 ID 带来的脚本功能和编码便利性。
在 Netscape Navigator 4.7 惨败之后,他们的开发人员都潜入了 W3C,而他们的同事则以错误的做法和滥用示例来取代 Web。强制使用和重用已弃用的 Name 属性 [!which 不意味着是唯一的] 与 ID 属性相提并论,这样使用 ID 句柄访问特定 DOM 元素的脚本就会崩溃!
并打破他们所做的,因为他们还将编写和发布广泛的编码课程和示例[他们的浏览器无论如何都无法识别], document.all.ElementID.property
而不是ElementID.property
至少使其效率低下并给浏览器更多的开销,以防它没有简单地打破它HTML 域通过使用相同的标记(现在 [1996-97],已弃用)名称和标准 ID 属性为其提供相同的标记值。
他们轻松地说服了——当时——压倒性的无知代码编写爱好者大军,名称和 ID 实际上是相同的,除了 ID 属性更短,因此比古老的 Name 属性更节省字节并且对编码器更方便。这当然是谎言。或者 - 在他们取代已发布的 HTML 文章中,令人信服的文章表明您需要为您的标签提供名称和 ID,以便脚本引擎可以访问它们。
Mosaic Killers [代号“Mozilla”] 非常生气,他们认为“如果我们倒闭,互联网也应该如此”。
另一方面,崛起的微软非常天真,他们认为应该保留已弃用并标记为删除的 Name 属性,并将其视为唯一标识符的 ID,这样他们就不会破坏脚本功能由 Netscape 学员编码的旧页面。他们大错特错...
并且返回 ID 冲突元素的数组集合也不能解决这个故意的人为问题。实际上它破坏了整个目的。
这就是 W3C 变得丑陋并给我们带来诸如document.getElementById
洛可可式的讨厌语法之类的白痴的唯一原因......(......)