将同id旧元素设为display:none后,新插入的同id元素是否具备唯一性?
关于重复ID的全局唯一性问题解答
新创建的DIV的id不具备全局唯一性,具体原因如下:
- HTML规范中对id的全局唯一性要求是针对整个DOM树内的所有元素,和元素的
display属性状态没有任何关联 - 旧DIV设置
display: "none"只是让元素不在页面上渲染展示,它仍然完整存在于DOM树结构中,并没有被移除 - 此时DOM树里同时存在两个
id="row"的元素,自然不符合id全局唯一性的要求
注意:如果你在代码中使用
document.querySelector("#row")这类按id选择元素的方法,此时只会返回DOM树中第一个匹配到的元素,和元素是否隐藏无关,很容易出现不符合预期的运行结果。
内容的提问来源于stack exchange,提问作者angel_dust
相关产品推荐
相关产品推荐

