Em quais casos element.parentElement ou element.parentNode será nulo em um HTML DOM?
Eu criei um elemento personalizado usando LitHTML e minha própria biblioteca baseada em bloco para gerenciamento de estado. Agora me deparei com um caso em que em um elemento, embora muito dentro de alguns outros elementos, retorna null para parentNode e parentElement. Eu não consigo descobrir por quê?

Quais são os casos em que parentNode e parentElement são nulos?
Respostas
O elemento c
retornado por sua consulta não tem parentElement
, mas tem um parentNode
que é a shadowRoot
.
ShadowRoots não tem uma parentNode
propriedade (é por isso que sua c.parentNode.parentNode
chamada retorna null
), mas você pode retornar o elemento que shadowRoot
está anexado acessando a host
propriedade shadowRoots ( c.parentNode.host
).
Veja a documentação: ShadowRoot
Ou pergunta relacionada: Obter elemento de host raiz de sombra