javascript - 检查 Javascript 中节点是否存在

标签 javascript dom

事情是这样的 - 我在页面上加载了很多元素,我正在使用 Javascript 删除其中一些元素 (this.parentNode.removeChild(this)),效果很好。但是,如果我有一个引用该节点的变量,然后删除该节点,该变量不会丢失它的值!但如果我随后尝试对此元素执行一些其他操作,则会出现错误!

示例:

var element = document.getElementById('ooolookatmeimanelement');
element.parentNode.removeChild(element);
alert(element);

我仍然在警报中收到“[Object HTMLblahblahblah]”,而不是 null 或未定义 - 有人知道如何检查节点是否已被删除吗?这可能是一些非常简单的事情,我却忽略了!

最佳答案

如果删除节点,也删除引用。例如。在您的代码中,将 null 分配给 element:

element = null;

或者,如果这是不可能的,您可以随时检查 parentNode 的值。如果元素不是 DOM 的一部分,它应该给出 null:

if(element.parentNode === null) {
    // element is not part of the DOM
}

但这对我来说没有多大意义(不过可能取决于上下文):如果您删除了一个元素,那么您知道您已经删除了它。为什么要对其进行进一步的操作?

关于javascript - 检查 Javascript 中节点是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377340/

相关文章:

javascript - 如何添加超过 1 个模态框?

php - DOMNodeList::getAttribute 未定义

javascript - 使用 Jquery 的 unwrap() 时,为什么我会得到 "DOM Exception 8"?

javascript - Delphi Chromium,Javascript 按钮按下

javascript - 如何将 javascript 嵌入到远程加载 Bootstrap 模式中

javascript - 如何将事件监听器应用于具有相同类的多个元素并使每个元素独立响应

javascript - 获取选定的文本位置并在其旁边放置一个元素

php - 如何在 php 中使用 DOM 解析器为 h1、h2 等创建 <div> ?

javascript - 刷新后保持 AngularJS 中的滚动位置

javascript - 更改使用 Three.js 创建的 3D 立方体的颜色