Dans quels cas element.parentElement ou element.parentNode sera-t-il nul dans un DOM HTML?
J'ai créé un élément personnalisé en utilisant LitHTML et ma propre bibliothèque basée sur des blocs pour la gestion des états. Maintenant, je suis tombé sur un cas où dans un élément bien que joli à l'intérieur de certains autres éléments, retourne null pour parentNode et parentElement. Je ne comprends pas pourquoi?

Dans quels cas parentNode et parentElement ont-ils la valeur NULL?
Réponses
L'élément c
renvoyé par votre requête n'a pas parentElement
, mais il a un parentNode
qui est un shadowRoot
.
ShadowRoots n'a pas de parentNode
propriété (c'est pourquoi votre c.parentNode.parentNode
appel retourne null
) mais vous pouvez renvoyer l'élément auquel shadowRoot
est attaché en accédant à la host
propriété shadowRoots ( c.parentNode.host
).
Voir la documentation: ShadowRoot
Ou question connexe: obtenir l'élément hôte de la racine de l'ombre