[英]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.