J'ai un objet DOM HTML et je sélectionne tous les éléments avec l'attribut: data-reveal. Je voudrais parcourir ces éléments et vérifier s'il y a un élément parent qui a la note de classe. Seulement si la classe n'est pas présente, je veux faire quelque chose.Traverse l'arborescence DOM et vérifie si un parent a une classe
J'ai utilisé la méthode la plus proche, a suggéré dans d'autres postes, mais le code ne retourne rien.
for (var i = 0; i < revealList.length; i++) {
if (revealList[i].closest('[data-conceal]').length = 0) {
// do something
}
};
Ceci est un exemple HTML minimal.
<div class="parent">
<div class="note">
<img data-reveal="2" href="">
<img data-reveal="3" href="">
<img data-reveal="4" href="">
</div>
<img data-reveal="5" href="">
<img data-reveal="6" href="">
</div>
Est-ce peut-être l'erreur dans la façon dont je sélectionne l'objet dans la clause if?
note côté, = 0 est une mission. Aussi, en aparté, vous devriez éviter les recherches d'attributs purs. Ils peuvent être très lents car ils doivent vérifier chaque élément dom disponible dans la portée pour voir s'ils correspondent. Essayez plutôt d'utiliser une classe ou un ID, ou sélectionnez un sous-ensemble d'éléments avant d'utiliser votre sélecteur d'attribut. – Taplar