如何在删除节点之前检查节点是否有子节点?

How to check if node have childNode before removing it?

我刚收到这个奇怪的错误:

我不知道那是怎么发生的。
.contains() 应该 return true 仅当 placeholderoverParent 的 child 时,但是 return 怎么可能是真的并且没有placeholder 因为它是 child?

我需要的解决方案:

  1. 为什么以及如何发生此错误?
  2. 只有当 placheholderoverParent 的 child 时才删除 placheholder 的更好解决方案。

观察:

我正在做这个反应。

问题是,尽管 .contains 告诉您 placeholderoverParent 的后代,但它可以是 孙子 节点。如果是这种情况,您正试图从 overParent.

中删除另一个节点中的节点

出于演示目的,请检查实际的 DOM 是否如下所示:

- overParent
    - <some node>
       - placeholder

为避免此类错误,请转至要删除的节点的直接父节点,然后在其上调用 removeChild

if (overParent.contains(placeholder)) {
    placeholder.parentNode.removeChild(placeholder);
    // rest of your code
}