Unterscheidung zwischen „$(this)“ und „this“ in jQuery
Beim Durcharbeiten des jQuery-Tutorials „Erste Schritte“ sind Sie auf ein gestoßen subtiler Unterschied zwischen der direkten Verwendung von '$(this)' und 'this'. In den von Ihnen bereitgestellten Codebeispielen:
$("#orderedlist").find("li").each(function (i) { $(this).append(" BAM! " + i); }); $("#reset").click(function () { $("form").each(function () { this.reset(); }); });
Sie haben richtig abgeleitet, dass der Hauptunterschied in der jQuery-spezifischen Funktionalität liegt.
'$(this)' für jQuery-Operationen
Im ersten Beispiel wird „$(this)“ innerhalb der „each“-Funktion verwendet, um über die „li“-Elemente zu iterieren. Indem Sie „this“ in „$(this)“ kapseln, konvertieren Sie es in ein jQuery-Objekt. Dadurch können Sie jQuery-Methoden wie „append“ verwenden, um die Elemente direkt zu manipulieren.
'this' für Nicht-jQuery-Funktionen
Im zweiten Beispiel ist 'this ' wird innerhalb der Click-Handler-Funktion für die Reset-Schaltfläche verwendet. Hier zielen Sie auf das Element „form“ ab. Das Zurücksetzen eines Formulars ist eine Standard-HTML-Funktion, die keinen jQuery-Eingriff erfordert. Daher können Sie „reset“ direkt auf „this“ aufrufen.
Wann jedes Formular verwendet werden soll
Als allgemeine Regel gilt, wann immer Sie jQuery-spezifisch ausführen möchten Für Operationen an Elementen verwenden Sie „$(this)“. Dadurch wird sichergestellt, dass das Element als jQuery-Objekt gekapselt ist und Sie Zugriff auf seine vollständigen Funktionen erhalten. Für Nicht-jQuery-Vorgänge wie das Zurücksetzen eines Formulars können Sie „this“ direkt verwenden.
Beziehung merken
Um die Sache zu vereinfachen, beachten Sie die folgende Äquivalenz:
$(this)[0] === this
Das bedeutet, dass Sie jederzeit auf das ursprüngliche DOM-Element zugreifen können, indem Sie das jQuery-Objekt mit indizieren '[0]'.
Das obige ist der detaillierte Inhalt vonWann sollte ich „$(this)' vs. „this' in jQuery verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!