移除没有父元素的元素
Remove an element that doesn't have a parent
这与Remove dom element without knowing its parent?不同,因为它们的元素确实有一个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"
你说的"remove"是什么意思。当它有一个父节点时,这意味着您将它追加到 DOM 中。您删除它意味着您将它从 DOM 中删除。由于您根本没有附加它,所以它只是
"<div></div>"
,如果你记录这个元素。您所要做的就是:
element = null;
或者什么都不做。
虽然该元素尚未添加到 DOM,但它与任何其他 Javascript 对象没有什么不同,一旦最后一个引用消失就会被垃圾回收。
要么覆盖引用,要么等待它超出范围。
这与Remove dom element without knowing its parent?不同,因为它们的元素确实有一个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"
你说的"remove"是什么意思。当它有一个父节点时,这意味着您将它追加到 DOM 中。您删除它意味着您将它从 DOM 中删除。由于您根本没有附加它,所以它只是
"<div></div>"
,如果你记录这个元素。您所要做的就是:
element = null;
或者什么都不做。
虽然该元素尚未添加到 DOM,但它与任何其他 Javascript 对象没有什么不同,一旦最后一个引用消失就会被垃圾回收。
要么覆盖引用,要么等待它超出范围。