¿En qué casos element.parentElement o element.parentNode serán nulos en un DOM HTML?

Nov 28 2020

He creado un elemento personalizado utilizando LitHTML y mi propia biblioteca basada en bloques para la gestión del estado. Ahora me he topado con un caso en el que en un elemento, aunque bastante dentro de otros elementos, devuelve nulo para parentNode y parentElement. ¿No puedo entender por qué?

¿Cuáles son los casos en los que parentNode y parentElement son nulos?

Respuestas

2 pilchard Nov 29 2020 at 01:30

El elemento cdevuelto por su consulta no tiene parentElement, pero tiene un parentNodeque es un shadowRoot.

ShadowRoots no tiene una parentNodepropiedad (por lo que su c.parentNode.parentNodellamada regresa null) pero puede devolver el elemento shadowRootadjunto accediendo a la hostpropiedad shadowRoots ( c.parentNode.host).

Ver los documentos: ShadowRoot

O pregunta relacionada: Obtener el elemento de host raíz de la sombra