我正在开发一个网站。有很多地方,我必须删除html元素。以前的主要贡献者曾经这样做:
var elem = document.getElementById('element');
elem.parentNode.removeChild(elem);
我想知道他为什么不只是使用
elem.remove();
相反。
我已经明白了,第一种方法不起作用并返回了一个错误,但是第二种方法可以完美地工作。当然,我想坚持使用该项目中的代码标准,因此,我的第一个尝试是使用parentNode.removeChild。不幸的是,我无法联系到那个人,问为什么会那样做。
这两者之间有什么区别,我可以安全地更换它们吗?
答案 0 :(得分:1)
从MDN开始,两者是等效的。 .remove()
受jQuery启发,并在以后实施。 IE不支持。
如果不需要IE,则可以安全地替换parentNode.removeChild
,但是如果要转换代码,则replace
方法可以使用parentNode.removeChild
方法进行polyfill ... >
答案 1 :(得分:0)
remove和removeChild有何不同?
remove
仅需要引用该孩子。 removeChild
需要同时引用父级和子级。结果是相同的。
您可能还会想,有什么方法可以确保从内存中真正删除元素?
不。您只能取消引用它,并希望有一个垃圾收集器来检测未引用的对象,然后将其删除。