Em quais casos element.parentElement ou element.parentNode será nulo em um HTML DOM?

Nov 28 2020

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

2 pilchard Nov 29 2020 at 01:30

O elemento cretornado por sua consulta não tem parentElement, mas tem um parentNodeque é a shadowRoot.

ShadowRoots não tem uma parentNodepropriedade (é por isso que sua c.parentNode.parentNodechamada retorna null), mas você pode retornar o elemento que shadowRootestá anexado acessando a hostpropriedade shadowRoots ( c.parentNode.host).

Veja a documentação: ShadowRoot

Ou pergunta relacionada: Obter elemento de host raiz de sombra