【发布时间】: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 吗?
如果不是,这是所有网络浏览器(新旧)的标准吗? 只是好奇,因为如果它们都是唯一的,我可以消除一些不必要的代码。
【问题讨论】: