Failed to execute 'removeChild' on 'Node': The node to be removed is not a child...

2025年09月13日 16:04 响应: 4.73秒 状态: success

🚨 错误信息

NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

🤖 AI解决方案

NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
// 错误翻译:NotFoundError: 尝试在 'Node' 上执行 'removeChild' 方法失败:要移除的节点不是该节点的子节点。

原因分析

尝试从父节点中移除一个不存在的子节点。

解决方案

在调用 removeChild 之前,先检查目标节点是否是父节点的子节点:

const parentNode = document.getElementById('parentNode');
const childNodeToRemove = document.getElementById('childNode');

if (parentNode && childNodeToRemove && parentNode.contains(childNodeToRemove)) {
    parentNode.removeChild(childNodeToRemove);
} else {
    console.warn("尝试移除的节点不存在或不是父节点的子节点。");
}

预防措施

  • 确保在操作 DOM 之前,已经正确获取到父节点和需要移除的子节点。
  • 在执行 DOM 移除操作时,增加健壮性检查,防止误操作。