J'en ai un <div>
qui en contient beaucoup d'autres <div>
, chacun à un niveau d'imbrication différent. Plutôt que de donner à chaque enfant <div>
un identifiant, je préfère simplement donner à la racine <div>
l'identifiant. Voici un exemple:
<div class="a" id="a5">
<div class="b">
<div class="c">
<a class="d">
</a>
</div>
</div>
</div>
Si j'écris une fonction dans jQuery pour répondre à la classe d
et que je souhaite trouver l'ID de son parent, classe a
, comment dois-je procéder?
Je ne peux pas simplement le faire $('.a').attr('id');
, car il existe plusieurs classes a
. Je pourrais trouver l'ID du parent du parent de son parent, mais cela semble de mauvaise conception, lent et peu polymorphe (je devrais écrire un code différent pour trouver l'ID de la classe c
).
Passez un sélecteur à la fonction parents jQuery :
EDIT Hmm, la réponse de Slaks est en fait supérieure si vous ne voulez que l'ancêtre le plus proche qui correspond à votre sélecteur.
la source
Vous pouvez utiliser parents () pour obtenir tous les parents avec le sélecteur donné.
Mais parent () n'obtiendra que le premier parent de l'élément.
Parent jQuery () vs parents ()
Et il y a .parentsUntil () qui je pense sera le meilleur.
la source
closest
.Utilisez .parentsUntil ()
la source
Extrait des commentaires de @ Resord ci-dessus. Celui-ci a fonctionné pour moi et plus étroitement incliné avec la question.
Merci
la source