parentNode.removeChild()和remove()有什么区别

时间:2020-08-12 11:21:40

标签: javascript html dom

我正在开发一个网站。有很多地方,我必须删除html元素。以前的主要贡献者曾经这样做:

var elem = document.getElementById('element');
elem.parentNode.removeChild(elem);

我想知道他为什么不只是使用

elem.remove();

相反。

我已经明白了,第一种方法不起作用并返回了一个错误,但是第二种方法可以完美地工作。当然,我想坚持使用该项目中的代码标准,因此,我的第一个尝试是使用parentNode.removeChild。不幸的是,我无法联系到那个人,问为什么会那样做。

这两者之间有什么区别,我可以安全地更换它们吗?

2 个答案:

答案 0 :(得分:1)

从MDN开始,两者是等效的。 .remove()受jQuery启发,并在以后实施。 IE不支持。


如果不需要IE,则可以安全地替换parentNode.removeChild,但是如果要转换代码,则replace方法可以使用parentNode.removeChild方法进行polyfill ...

答案 1 :(得分:0)

Source of the answer

remove和removeChild有何不同?

remove仅需要引用该孩子。 removeChild需要同时引用父级和子级。结果是相同的。

您可能还会想,有什么方法可以确保从内存中真正删除元素?

不。您只能取消引用它,并希望有一个垃圾收集器来检测未引用的对象,然后将其删除。

相关问题