jQuery - Eltern "das"

8
%Vor%

Gibt es eine Möglichkeit, das Elternelement ( this ) innerhalb dieser Klickfunktion zu erhalten, ohne eine Zwischenvariable zu verwenden? Ich dachte, dass es vielleicht ein Stichwort gibt, von dem ich nicht weiß, dass du es tun kannst.

In der $ .ajax-Funktion gibt es eine context -Parameter, mit der Sie so etwas machen können.

    
Alex 08.06.2011, 22:25
quelle

5 Antworten

7

Nein, Sie haben es am besten gemacht. Das Übereinkommen schlägt vor, Folgendes zu verwenden:

%Vor%     
glortho 08.06.2011, 22:26
quelle
2

Da a ein Kind von form ist, können Sie closest verwenden:

%Vor%

Eine andere Option ist proxy :

%Vor%     
Matt 08.06.2011 22:27
quelle
2

Sicher - verwenden Sie eine Schließung.

%Vor%

Wenn Sie eine Funktion curry haben (ähnlich der in Prototype, nicht sicher, ob jemand in jQuery eingebaut ist), können Sie diese mittlere Zeile etwas vereinfachen:

%Vor%     
Josh 08.06.2011 22:36
quelle
2

Zunächst einmal ist Ihr Beispiel richtig und zweitens würden die meisten Menschen es tun. Es gibt kein Schlüsselwort, einfach die Richtung umkehren und das DOM für das wahrscheinlichste Elternteil durchqueren (was albern ist, da du es schon gefunden hast, oder?). In diesem Fall würde ich eine Zwischenvariable empfehlen, auch wenn andere Beantworter korrekt gezeigt haben, wie closest zu verwenden ist. (Es ist auch etwas technischer Natur, dass ein <form> in einem <form> ungültiger HTML-Code ist. Es gibt keine Garantie für Dinge wie <div> , die kein Kind <div> s überschreiten die nächste <a> .)

In jQuery sehen Sie eine Menge Zeug wie folgt:

%Vor%

Es ist nicht das Schönste zu lesen, aber das Muster kommt häufig genug vor, dass es leicht zu erkennen ist. Ich empfehle etwas, was Sie tun ( var form ) anstelle von Sachen wie _this (Unterstrich kann private Variablen implizieren), self (ist es eigentlich nicht), etc.

    
brymck 08.06.2011 22:37
quelle
1

Sie sollten in der Lage sein, mit jquery's Eltern (oder Eltern, abhängig davon, wie verschachtelt ein Tag ist) auf den Selektor

zu verweisen

Also sollte so etwas funktionieren:

%Vor%     
Olives 08.06.2011 22:29
quelle