parent Enchaînement jQuery (), est-il un moyen plus facile?
-
29-09-2019 - |
Question
Hay, j'ai quelques balises comme ceci
<div id="some-id">
<h2><a href="#">Title</a></h2>
</div>
et certains jQuery comme ceci
$(this).parent().parent().attr("id")
$ (ce) fait référence à l'étiquette 'a' dans le 'h2'
Y at-il un moyen plus facile de sélectionner la div parent sans utiliser parent () deux fois. J'ai essayé
$(this).parent("div").attr("id")
mais ça n'a pas marché.
Merci
La solution
Vous pouvez utiliser .closest()
, comme ceci:
$(this).closest("div").attr("id")
Vous pouvez le tester ici .
.parent("div")
est pas aussi intuitif que cela puisse paraître, il devient que la < strong> immédiate parent si il correspond au sélecteur, .closest()
gravit les parents jusqu'à il correspond au sélecteur.
S'il vous plaît noter que (ne concerne pas cet exemple) si this
correspond au sélecteur, il retourne que élément, il n'a pas start avec le premier parent, il commence par lui-même.