Ich habe eine <div>
, die viele andere <div>
s enthält, jede auf einer anderen Verschachtelungsebene. Anstatt jedem Kind <div>
eine Kennung zu geben, gebe ich der Wurzel nur <div>
die Kennung. Hier ist ein Beispiel:
<div class="a" id="a5">
<div class="b">
<div class="c">
<a class="d">
</a>
</div>
</div>
</div>
Wie würde ich das tun, wenn ich in jQuery eine Funktion schreibe, um auf die Klasse zu antworten, d
und die ID für die übergeordnete Klasse ermitteln a
möchte?
Ich kann nicht einfach tun $('.a').attr('id');
, weil es mehrere Klassen gibt a
. Ich konnte die ID der Eltern der Eltern finden, aber das scheint von schlechtem Design, langsam und nicht sehr polymorph zu sein (ich müsste anderen Code schreiben, um die ID für die Klasse zu finden c
).
Übergeben Sie einen Selektor an die jQuery Eltern Funktion:
EDIT Hmm, tatsächlich ist Slaks Antwort überlegen, wenn Sie nur den nächsten Vorfahren suchen, der zu Ihrem Selektor passt.
quelle
Sie können parent () verwenden , um alle Eltern mit dem angegebenen Selektor abzurufen.
Aber parent () erhält nur den ersten Elternteil des Elements.
jQuery parent () vs. parent ()
Und es gibt .parentsUntil (), von dem ich denke, dass es das Beste ist.
quelle
closest
.Verwenden Sie .parentsUntil ()
quelle
Auszug aus den obigen Kommentaren von @ Resord. Dieser arbeitete für mich und neigte eher zur Frage.
Vielen Dank
quelle