推荐使用 node.remove() 方法彻底删除节点及全部子元素;兼容老浏览器可用 parentnode.removechild();避免用 innerhtml = '' 清空内容,因其不真正删除节点且可能残留事件监听器。

直接调用该节点的 remove() 方法即可,它会彻底移除该节点自身以及全部子元素。
使用 remove() 方法(推荐,最简洁)
现代浏览器普遍支持,语法简单,语义清晰:
- node.remove() —— 删除 node 及其所有后代节点
- 无需关心父节点,也不需要先获取 parent 再调用 removeChild
- 例如:
document.getElementById('box').remove();会删掉 id 为 box 的整个 div 及其内部所有内容
兼容老浏览器:用 parentNode.removeChild()
如果需支持 IE10 或更早版本,可用传统方式:
- 先确保节点存在且有父节点:
if (node && node.parentNode) { node.parentNode.removeChild(node); } - 注意:不能对 null 或无父节点的节点调用,否则报错
- 这个方法只删除 node 本身,不影响其子元素——因为子元素随父节点一并被移除
慎用 innerHTML = '' 替代删除
这不是真正“删除节点”,而是清空内容:
-
node.innerHTML = ''只清除子节点,保留 node 自身 - 事件监听器、绑定的数据等可能未被完全清理(尤其用 addEventListener 添加的)
- 若目标是彻底移除 DOM 结构和关联资源,应避免此方式
批量删除多个匹配节点
结合 querySelectorAll 和 forEach:
document.querySelectorAll('.item').forEach(el => el.remove());- 或兼容写法:
[].forEach.call(document.querySelectorAll('.item'), el => el.parentNode.removeChild(el));
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











