Ich brauche Hilfe, $ (this) zu verstehen. Ist es möglich, den Fokus von "this" innerhalb der Klammern einzuschränken, oder schließt "this" die Verwendung anderer Attribute aus?
Zum Beispiel: Ich verstehe nicht, warum dieser Code:
%Vor%kann nicht wie folgt umgeschrieben werden:
%Vor%ohne auf etwas wie:
zurückgreifen zu müssen %Vor%Kannst du mich auch in der JQuery-Dokumentation auf "das" hinweisen? Aus naheliegenden Gründen ist es schwierig, "das" als Suchbegriff zu verwenden.
this
ist kein jQuery-Ding, sondern ein < a href="https://developer.mozilla.org/de/JavaScript/Reference/Operators/Special/this"> grundlegendes JavaScript eins . Es kann nicht wie in Beispielen beschrieben neu geschrieben werden, da es ein Objekt ist, insbesondere entweder ein DOM-Element oder ein jQuery-Objekt (je nachdem, in welchem Kontext Sie sich befinden). Also wenn du das getan hast:
Was Sie wirklich tun würden, ist .toString()
auf this
zum Verketten der Strings, was zu folgendem Ergebnis führt:
.... was kein gültiger Selektor ist.
Was die weitere Lektüre angeht, glaube ich, dass dieser Artikel weiterhin eine der besten Referenzen / Ressourcen zu sein scheint lerne was this
(ein Kontextschlüsselwort) bedeutet.
Pro Kommentaranfragen gibt es einige Beispiele dafür, was this
an verschiedenen Stellen ist:
$("selector").click(function() { alert(this); });
this
bezieht sich auf das DOM-Element, auf dem der Event-Handler ausgelöst wird. $.fn.myPlugin = function() { alert(this); });
this
ist das jQuery-Objekt, an dem das Plugin aufgerufen wurde, zum Beispiel: $("selector").myPlugin();
, this
ist das $("selector")
jQuery-Objekt. function myFunc() { alert(this); };
this
ist der Kontext, in dem Sie sich befinden, ob es ein Objekt oder etwas anderes ist, ein paar Beispiele: $("selector").click(myFunc);
- this
ist das DOM-Element, wie oben $("selector").click(function() { myFunc(); });
- this
ist der globale Inhalt, window
myFunc.call(whatThisIs, arg1, arg2);
- this
ist whatThisIs
Function.call()
und Function.apply()
für weitere Informationen Verwenden Sie .find()
Oder verwenden Sie den Parameter context
, um jQuery( selector, context )
(intern ruft es nur "find auf jeden Fall ...").
this
ist keine Zeichenfolge, die einen CSS-Selektor darstellt (z. B. div
, #my_id
oder .my_class
).
Wenn Sie this
als Argument für die jQuery-Funktion übergeben, gibt es ein jQuery-Objekt basierend auf dem aktuellen Element zurück (worauf es Bezug nimmt), sodass Sie nicht wie $(this + selector)
verwenden können.
Sie können einen Blick auf diese: Ссылка
Grundsätzlich ist this
das DOM-Element, auf das der Callback verweist. Sie können $(this + " div")
nicht ausführen, weil Sie einem Element eine Zeichenfolge hinzufügen. Sie müssen zuerst die ID wie in Ihrem dritten Code-Snippet erhalten.
Übrigens ist $(this).children("div")
nicht dasselbe wie $('#'+$(this).attr("id")+" div")
Erstens, this
hat möglicherweise keine ID, in diesem Fall funktioniert der zweite Weg überhaupt nicht. Und selbst wenn es eine ID hat, ist dieser zweite Code tatsächlich $(this).find("div")
. Wenn Sie nur Kinder wollen, müssen Sie tun: