2016-12-20 12 views
0

, что делает «это-ключевое слово» ссылка в этом контексте:«это» -ключевое слово для объекта JQuery

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

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

Возможный дубликат [Как "это" ключевое слово работа?] (Http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) – Hosch250

ответ

1

В методе JQuery, this является сбор JQuery, который вы назвали метод на. Поэтому в вашем примере это коллекция возвращается $("#diveins").

Причина, по которой вы получаете false, состоит в том, что каждый раз, когда вы звоните $("#diveins"), вы получаете новую коллекцию. Если Вы писали:

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

также покажет false.

Вы можете использовать this.is("#diveins"). Это будет работать, если вы просто ищете один элемент - похоже, нет простого способа сравнить коллекции jQuery.

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>