Javascript DOM: 查找未附加的节点

Javascript DOM: Find unattached node

如何找到未附加的节点?[​​=16=]

示例代码:

var newElem = document.createElement('div');
newElem.id = 'newDiv';
newElem = null;

如何找到我刚刚创建的 div

document.getElementById('newDiv') 不起作用,因为 div 未附加到文档。

将元素的 newElem 引用设置为 null 后,该节点将被垃圾回收。它不存在了,你也找不到了。

当您没有将节点附加到 DOM 部分时,您无法使用任何 DOM 方法在该部分中找到它。

document.getElementById('newDiv') does not work because the div is not attached to the document.

没错。您已经存储了对您 刚刚 创建的元素的引用。那么为什么不使用它呢?

将它设置为 null 并询问如何找到它,是不合常理的。

所有 DOM 方法都作用于 DOM 或 DOM 的一部分的节点上。如果不是,并且如果您 故意 设置自己对 null 的引用,无论是什么原因,您都无法再引用它,因为没有更多的引用它在任何地方,因此它被垃圾收集。

无论你是否使用newElem = null;document.getElementById('newDiv')都会return null 因为你创建的dom <div id="newDiv"></div>没有附加到 document.

您可以使用:

var newElem = document.createElement('div');
newElem.id = 'newDiv';
var existsElem = document.getElementById("any-existing-element");
existsElem.appendChild(newElem); // attach your created element to document

然后 document.getElementById("newDiv") 将获得您新创建的元素。

注意existsElem.appendChild(newElem);执行后,即使执行newElem = null;document.getElementById("newDiv")仍然得到dom<div id="newDiv"></div>.