【发布时间】:2017-11-01 02:06:52
【问题描述】:
我有一个容器节点,我在其中附加了许多标签,每个标签都有自己的子节点:
var container = document.getElementById("my_container");
var my_label, some_element, other_element;
for (let i=0;i<some_number;i++) {
container.appendChild(my_label);
my_label.appendChild(some_element);
my_label.appendChild(other_element);
}
在某个时候,我从容器中删除了 my_label 的所有实例,因此我可以将其他元素添加到容器中:
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
请注意,这样做时,我不会删除 some_element 和 other_element 的任何实例。 my_label 的这些孩子会怎样?我的代码是否干净,还是应该先删除 my_label 的所有子项,然后再删除 my_label?
提前感谢您的智慧!
【问题讨论】:
-
问题代码有什么问题?
-
只要没有东西持有对它们的引用(例如存储在某个变量中),它们迟早会被垃圾收集。请注意,如果您将
my_label设置为相同的元素,它仍将持有对该元素及其子元素的引用,因此在变量被清除/垃圾收集之前,两者都不会被垃圾收集 -
guest271314:我不确定我的代码是否确实存在问题——这就是我问这个问题的原因。我是 Javascript 新手。
-
Patrick Evans:感谢您的提醒。
标签: javascript html nodes children