簡體   English   中英

檢查變量中的元素在當前DOM中是否具有引用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM