2016-12-20 3 views
0

Was bedeutet den "this-Schlüsselwort" Bezug auf in diesem Zusammenhang:"this" -keyword für ein jQuery-Objekt

jQuery.fn.m=function(){ 
    console.log(this == $("#diveins")); // gives a false what does it reference to? 
}; 

$("#diveins").m(); 
+0

Mögliche Duplikat [Wie funktioniert die "this" Schlüsselwort Arbeit?] (Http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) – Hosch250

Antwort

1

In einer jQuery-Methode, this ist die jQuery Sammlung, die die Methode aufgerufen. In Ihrem Beispiel ist es also die von $("#diveins") zurückgegebene Sammlung.

Der Grund, warum Sie false bekommen ist, weil jedes Mal, wenn Sie anrufen $("#diveins") Sie eine neue Sammlung zu bekommen. Wenn Sie schreibt:

console.log($("#diveins") == $("#diveins")); 

es wird auch false zeigen.

Sie können this.is("#diveins") verwenden. Dies funktioniert, wenn Sie nur nach einem einzelnen Element suchen - es scheint keine einfache Möglichkeit zu geben, jQuery-Sammlungen zu vergleichen.

jQuery.fn.m=function(){ 
 
    console.log(this.is("#diveins")); 
 
}; 
 

 
$("#diveins").m();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="diveins"></div>