在哪些情况下 element.parentElement 或 element.parentNode 在 HTML DOM 中为空?

In which cases will element.parentElement or element.parentNode be null in a HTML DOM?

我使用 LitHTML 和我自己的基于 bloc 的状态管理库创建了自定义元素。 现在我偶然发现了一个情况,在一个元素中,尽管在其他一些元素中很漂亮,但 parentNode 和 parentElement 为 returns null。 我不明白为什么?

parentNode 和 parentElement 为 null 的情况有哪些?

您查询的 c return 元素没有 parentElement,但它确实有 parentNode,即 shadowRoot

ShadowRoots 没有 parentNode 属性(这就是为什么你的 c.parentNode.parentNode 调用 returns null)但你可以 return shadowRoot 通过访问 shadowRoots host 属性 (c.parentNode.host).

附加的元素

查看文档:ShadowRoot

或相关问题:Get shadow root host element