Dans quels cas element.parentElement ou element.parentNode sera-t-il nul dans un DOM HTML?

Nov 28 2020

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

2 pilchard Nov 29 2020 at 01:30

L'élément crenvoyé par votre requête n'a pas parentElement, mais il a un parentNodequi est un shadowRoot.

ShadowRoots n'a pas de parentNodepropriété (c'est pourquoi votre c.parentNode.parentNodeappel retourne null) mais vous pouvez renvoyer l'élément auquel shadowRootest attaché en accédant à la hostpropriété shadowRoots ( c.parentNode.host).

Voir la documentation: ShadowRoot

Ou question connexe: obtenir l'élément hôte de la racine de l'ombre