如何删除DOM中没有的元素?

时间:2012-08-05 15:35:51

标签: javascript dom removechild

var paragraphElement = document.createElement('p');

paragraphElement不在DOM中。我该如何删除它?我知道如果它在DOM中,我可以使用removeChild。我不倾向于将paragraphElement添加到DOM中,然后将其删除。任何解决方案?

谢谢。

2 个答案:

答案 0 :(得分:6)

如果某个对象不再被引用,它将被标记为垃圾收集。因此,当您离开上下文p有效并且元素未以任何其他方式引用时,垃圾收集将在下次运行时释放内存。垃圾收集如何实现这一点取决于JavaScript引擎。

您还可以为p指定新的非参考值,例如0,或使用p = null。请注意,.removeChild不会仅从DOM中删除子内存,但如果此节点上没有其他引用,则会将其释放用于垃圾回收。

有关详情,请查看MDN: Memory Management

答案 1 :(得分:1)

如果它不在DOM中,那么您所要做的就是清除对它的任何JS引用,垃圾收集器将为您删除它。这基本上与javascript对象或javascript数组没有什么不同。如果清除对它的任何引用,垃圾收集器将清理它。

所以,如果你这样创建它:

var paragraphElement = document.createElement('p');

然后,你需要做的就是摆脱它,参考:

var paragraphElement = null;

如果没有对该元素的javascript引用,垃圾收集器将删除它。