Why are duplicate ID values not allowed in HTML?(为什么HTML中不允许重复的ID值?)
问题描述
在什么情况下,HTML页面包含具有重复ID属性的元素是非法的?
作为一名使用HTML多年的开发人员,我知道我们的意图是元素ID应该是唯一的-我问的是重复ID的实际负面影响。
当然,某些库中类似getElementByID()的函数可能返回数组而不是单个元素,这可能会在开发人员没有预料到这种情况时导致问题。然而,据我所知,这样的函数将继续运行,非常清楚,它们不会是id重复的破坏效应。
那么为什么说不允许重复ID?
编辑:这个问题的驱动因素是,我在生成列表/重复项时看到一些模板库,生成具有重复ID的元素,我想知道这在实际中可能会产生什么影响,以及如何决定是否采用这些库。 我还想知道模态插件或任何其他可能克隆现有隐藏节点从而通过代码创建副本的插件的效果,以及在这种情况下浏览器会做什么。 规格说明唯一 HTML 4.01 specification表示ID在文档范围内必须是唯一的。 HTML 5 specification表示相同的事情,但换句话说。它
表示ID在其主子树中必须是唯一的,这基本上是
文档如果我们read the definition of it. 避免重复推荐答案
getElementById
函数是否应在找到多个匹配元素时返回?
是否应该:
- 返回错误?
- 返回第一个匹配元素?
- 返回最后一个匹配元素?
- 是否返回一组匹配的元素?
- 不返回任何内容?
HTML中不允许重复ID
该代码不正确。不正确不会以灰色阴影出现。这 代码违反了标准,因此是不正确的。它会失败的 验证检查,而且应该这样做。也就是说,目前还没有浏览器 市场上的人会抱怨它,或者对它有任何问题,在 全。浏览器有权投诉,但是 目前,它们中的任何一个的当前版本都没有这样的功能。哪一个 并不意味着将来的版本可能不会糟糕地对待此代码。
~发件人Dan Ray
重复的ID和JavaScript
因此,如果您在HTML中使用重复的ID,许多库将无法按预期工作。大多数库将获得他们找到的第一个id并返回该元素。当我们查看纯JavaScript时:如果有多个具有相同id的元素,则应该返回document.getElementById("idName");
。它说它必须返回the first element, in tree order.
这篇关于为什么HTML中不允许重复的ID值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么HTML中不允许重复的ID值?
基础教程推荐
- 响应更改 div 大小保持纵横比 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 动态更新多个选择框 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01