Javascript DOM:查找未附加的节点

时间:2015-04-02 15:12:02

标签: javascript dom

如何找到未附加的节点?

示例代码:

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

我怎样才能找到刚刚创建的div

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

  

document.getElementById('newDiv')不起作用,因为div不是   附在文件上。

完全。您已经将引用存储到 创建的元素中。那么为什么不用呢?

将其设置为null并询问如何找到它,是非常明确的。

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

答案 2 :(得分:0)

无论您是否使用newElem = null;document.getElementById('newDiv')都会返回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>