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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top