如何找到未附加的节点?
示例代码:
var newElem = document.createElement('div');
newElem.id = 'newDiv';
newElem = null;
我怎样才能找到刚刚创建的div
?
document.getElementById('newDiv')
不起作用,因为div
未附加到文档中。
答案 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>
。