Mam <div>
wiele innych elementów <div>
, każdy na innym poziomie zagnieżdżenia. Zamiast nadawać każdemu dziecku <div>
identyfikator, raczej po prostu daję <div>
identyfikator rootowi. Oto przykład:
<div class="a" id="a5">
<div class="b">
<div class="c">
<a class="d">
</a>
</div>
</div>
</div>
Jeśli napiszę funkcję w jQuery, aby odpowiedzieć na klasę d
i chcę znaleźć identyfikator dla jej rodzica, klasy a
, jak mam to zrobić?
Nie mogę tak po prostu zrobić $('.a').attr('id');
, ponieważ istnieje wiele klas a
. Mogłem znaleźć identyfikator rodzica rodzica, ale wydaje się, że jest to kiepski projekt, powolny i niezbyt polimorficzny (musiałbym napisać inny kod, aby znaleźć identyfikator klasy c
).
Przekaż selektor do funkcji rodziców jQuery :
EDYCJA Hmm, właściwie odpowiedź Slaksa jest lepsza, jeśli chcesz tylko najbliższego przodka, który pasuje do twojego selektora.
źródło
Możesz użyć rodziców (), aby uzyskać wszystkich rodziców z danym selektorem.
Ale Parent () otrzyma tylko pierwszego rodzica elementu.
jQuery Parent () vs. Parent ()
I jest .parentsUntil (), które moim zdaniem będą najlepsze.
źródło
closest
.Użyj .parentsUntil ()
źródło
Wyciąg z powyższych komentarzy @ Resord. Ten działał dla mnie i był bardziej skłonny do pytania.
Dzięki
źródło