删除没有父元素的元素

时间:2016-02-04 13:08:55

标签: javascript dom removechild createelement

这与Remove dom element without knowing its parent?不同,因为它们的元素确实有一个parentNode。

我知道如何通过其parentNode删除元素,但是如果我创建一个新元素,它根本就没有parentNode。

所以,
a)如何删除此元素?
b)我是否需要?或者在最后一次引用消失后立即清理?

上下文:我正在尝试为我的JavaScript代码编写一些自动化测试。我在浏览器中使用Mocha,我想测试是否将子元素插入到给定的父元素中。我在每次测试之前动态创建父级,但我认为我不应该将它添加到文档中。但是我想确保我没有大量未引用的节点列表。

var element = document.createElement('div');

console.log(element); // The div

console.log(element.parentNode); // null

element.parentNode.removeChild(element); // "Cannot read property 'removeChild' of null"

2 个答案:

答案 0 :(得分:1)

你是什么意思“删除”它。当它有一个父节点,这意味着你将它附加到DOM中。你删除它意味着你从DOM中删除它。由于你根本没有附加它,它只是

  "<div></div>"

,如果您记录此元素。您所要做的就是:

  element = null;

或不做任何事。

答案 1 :(得分:0)

虽然该元素尚未添加到DOM中,但它与任何其他Javascript对象没有区别,并且在最后一个引用消失后将立即进行垃圾回收。

要么覆盖引用,要么等待引用超出范围。