【问题标题】:Are all HTML elements unique?所有 HTML 元素都是唯一的吗?
【发布时间】:2013-08-10 01:21:08
【问题描述】:

我正忙着编写一个 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 吗?

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

【问题讨论】:

    标签: html dom unique


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 似乎是这样(至少对于我的桌面浏览器,即 Opera Next、Chrome 和 Chrome Canary、Firefox)。在 IE7、8、9、10 和 11 中可能相同。不过,只是好奇。如果它适用于这些较新的桌面浏览器,它应该适用于最新的移动浏览器。
    猜你喜欢
    • 1970-01-01
    • 2023-02-21
    • 2020-07-07
    • 1970-01-01
    • 2020-10-24
    • 2020-07-11
    • 2012-03-09
    • 2019-12-20
    • 2021-06-21
    相关资源
    最近更新 更多