我能够在w3schools上找到javascript remove()
函数的唯一参考是this page,声称该方法用于从选择中删除选项。但是,当我在Chrome和Firefox中测试它时,它在任何节点上调用它时显然可以正常工作。
这是新支持的吗?我过去总是要做child.parentNode.removeChild(child)
这样的事情。使用一个优于另一个是否有任何好处/缺点?
答案 0 :(得分:2)
HTMLSelectElement
对象有remove
方法。只有现代浏览器才支持该方法。它删除了html元素。
您所指的是HTMLElement
(实现option
接口)对象的remove
方法,它删除{{1通过索引。旧方法和新浏览器都支持该方法。如果不传递索引,select
元素本身就会被删除。
答案 1 :(得分:0)
看看规范,他们似乎做了同样的事情。
https://dom.spec.whatwg.org/#dom-childnode-remove
remove()方法在调用时必须运行以下步骤:
如果上下文对象的父级为null,则终止这些步骤。
从上下文对象的父级中删除上下文对象。
最后一行似乎暗示它仍然这样做.parentNode.removeChild(child)。
https://dom.spec.whatwg.org/#dom-node-removechild
removeChild(child)方法必须返回从上下文对象中预删除子项的结果。
https://dom.spec.whatwg.org/#concept-node-pre-remove
要从父级中预删除子级,请运行以下步骤:
如果child的父级不是父级,则抛出NotFoundError异常。 从父母那里移除孩子。
归还孩子。
至于如果一方面有优势,我不确定是否存在优势。 (可能会有,但我找不到任何东西)这可能只取决于你的上下文中哪些更好的可读性。