dedlfix: jQuery: this und $(this)

Beitrag lesen

Tach!

bei Stackoverflow hab ich zum Thema "Difference between $(this) and this in jquery" folgende Aussage gefunden:
"this is the DOM object, whereas $(this) is the jQuery wrapper around same.
When using this, you can call DOM methods on it, but not jQuery methods. When using $(this), you can call jQuery methods on it, but not DOM methods."

this ist immer abhängig vom Kontext. Für Funktionen, die von jQuery-Eventhandlern aufgerufen werden, wird this auf das auslösende DOM-Element gesetzt.

$.fn.showLinkLocation = function() {
     this.filter( "a" ).each(function() {

filter("a") ist doch eine jQuery-Methode, oder? Wieso dann this und nicht $(this).

Hier ist der Kontext eine jQuery-Erweiterung, das this bezieht sich auf diese Erweiterung und nicht auf ein DOM-Element.

Ebenso verstehe ich nicht, warum man this zurückgibt und nicht $(this). Kann mir das jemand erklären? Danke!

Hat man so entschieden. Irgendwas muss man ja übergeben. Wenn es $(this) wäre und man stattdessen das DOM-Element braucht, wäre das Hinzufügen des jQuery-Wrappers unnötige Arbeit und damit laufzeitverlängernd. Das nackte this zu übergeben und bei Bedarf den Wrapper drumzubauen, ist zwar mehr Arbeit für dich als Anwender, aber insgesamt hat man so nur dann das Wrapper-Hinzufügen im Code, wenn es tatsächlich gebraucht wird.

dedlfix.