Ich versuche eine Funktion mit dem "onclick" -Ereignis wie folgt aufzurufen:
%Vor%In der Funktion selbst beziehe ich mich auf "das":
%Vor% Wenn ich die ganze Sache renne, sagt die Warnung "undefined". Wenn ich alert(this)
versuche, bekomme ich [Objektfenster].
Ich arbeite mit IE9, BTW.
Danke
Beim Aufruf einer Funktion von einem Event-Handler wird dessen this
nicht vom Handler gesetzt (obwohl Sie this
aus dem Handler per Xdazz-Antwort übergeben oder this
pro Kyle-Antwort setzen können). Ein anderer Ansatz besteht darin, das Senderelement aus dem Ereignisobjekt zu extrahieren, das dem Ereignis zugeordnet ist:
Sie müssen das Ereignis auch explizit übergeben:
%Vor%Beachten Sie, dass, wenn die Tabellenzelle verschachtelte Elemente hat, sie der "Sender" sind, um das gewünschte Element (das ist die Tabellenzelle) zu erreichen, die Sie nach oben durchlaufen müssen. Um all diese Kopfschmerzen zu vermeiden, siehe unten, wie man die Handler über Code anfügt .
Das heißt, es wäre besser, das Klickereignis über Code statt über Inline zu binden - mischen Sie nicht HTML mit JavaScript. Um dies zu erreichen, haben Sie einen solchen Code:
%Vor% Wenn der obige Code vorhanden ist, können Sie die inline onclick=
-Aufrufe aus dem HTML-Code entfernen und Ihre ursprüngliche Funktion beibehalten - der this
verweist auf die angeklickte Tabellenzelle.
Verwenden Sie stattdessen das Ereignisziel, um das gewünschte dom-Element zu erhalten:
%Vor%Tags und Links javascript this