推荐使用 node.remove() 直接移除节点,无需获取父元素;兼容老浏览器则用 if (node.parentnode) node.parentnode.removechild(node);remove() 不销毁节点,可重新插入。

直接调用节点的 remove() 方法即可,它会自动从当前父元素中移除该节点,无需先获取父级。
使用 remove() 方法(推荐)
现代浏览器都支持 remove(),语法最简洁,语义最清晰:
- node.remove() —— 直接移除自身,不返回任何值
- 不需要访问
parentNode,也不用担心父节点是否为null - 兼容性良好(Chrome 29+、Firefox 23+、Edge 12+、Safari 9+)
兼容老浏览器:用 parentNode.removeChild()
如果需支持 IE10 或更早版本,可回退到传统方式:
- 先检查
node.parentNode是否存在,再调用removeChild(node) - 注意:
removeChild()必须在父节点上调用,且必须传入要移除的子节点 - 示例:
if (node.parentNode) node.parentNode.removeChild(node);
注意:remove() 不会销毁节点,只是解绑
调用 remove() 后,节点仍存在于内存中,可重新插入其他位置:
- 节点的事件监听器、属性、子元素等全部保留
- 后续可调用
newParent.appendChild(node)或newParent.append(node)再次挂载 - 若想彻底清除(如释放资源),需手动移除监听器或置空引用
避免常见错误
以下写法容易出错,需留意:
- ❌
node.parentNode.remove(node)——remove()是节点方法,不是父节点方法 - ❌
node.removeChild(node)——removeChild只能在父节点上调用 - ❌ 忘记判断
node.parentNode就直接调用removeChild,可能报错
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











