[英]Check whether element from variable has a refference in current DOM
假设我在变量中有一个元素:
var element = document.getElementsByTagName("div")[0]
// here can be any kind of getting element, e. g. React ref, Chrome's devtools $0, etc.
在某个时间点,我的标记发生了变化(例如在SPA中),并且变量中的element
已从DOM中删除,但它仍在具有所有属性的element
可用,例如parentElement
等。
问题是:如何检查element
中的DOM element
是否存在于DOM中?
我尝试检查element.getBoundingClientRect()
,是的,有一些区别:从DOM中删除的元素在其边界矩形中具有所有零。 但是有一件事情: display: none
元素display: none
尽管DOM中仍然存在所有元素,但没有一个元素在其rect矩形中具有所有的零(实际上,可以说)。 在我的情况下,这是不可接受的,因为我需要将隐藏元素与已删除元素区别开。
您可以为此目的使用contains
function contains() { const result = document.body.contains(element); console.log(result); } const element = document.getElementById('app'); contains(); element.classList.add('hide'); contains(); element.parentNode.removeChild(element); contains();
.hide { display: none; }
<div id="app">App</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.