所有HTML元素都是唯一的吗?

时间:2013-08-10 01:21:08

标签: html dom unique

我正在忙着制作一个JavaScript代码,允许我将GUI页面元素设置为具有自定义上下文菜单,当我考虑检查元素是否存在以便为其创建上下文菜单时。

function element_exists(el){
var tagName=el.tagName;
var exists=0;
for(var a=0;a<document.getElementsByTagName(tagName).length;a++){
    if(document.getElementsByTagName(tagName)[a]==el){
        exists=1;
    }
}
return exists;
}

在这段代码中,我传递了一个DOM元素对象的引用(它是从前面存储的)。 让我们说它已存储,但从那​​时起我从文档中删除了元素本身。

我正在使用Chrome Canary,即使我通过控制台编辑页面并使用完全相同的标记名称和ID创建新元素,它也会返回false。如果它具有相同的innerText和innerHTML,它会返回true吗?

如果没有,这是所有网络浏览器(旧的和新的)的标准吗? 只是好奇,因为如果它们都是唯一的,我可以删除一些不必要的代码。

1 个答案:

答案 0 :(得分:1)

我很确定答案是否定的;每个元素都是唯一的,无论它们是否具有相似的值(包括“id”)。

这可以让您深入了解元素垃圾收集在Chrome中的工作原理。我不确定其他浏览器是如何回应的。

http://www.html5rocks.com/en/tutorials/memory/effectivemanagement/

它概述了一些可能对测试你的理论有用的工具。