$(this)vs this in jQuery

问题描述:

jQuery中的$(this)this有什么区别?这里有两种不同的用途:

$(document).ready(function() { 
    $("#orderedlist").find("li").each(function(i) { 
    $(this).append(" BAM! " + i); 
    }); 
}); 


$(document).ready(function() { 
    // use this to reset several forms at once 
    $("#reset").click(function() { 
    $("form").each(function() { 
     this.reset(); 
    }); 
    }); 
}); 

“this”变量指向(在这种情况下,你提供的事件处理程序)给DOM元素。因此$(this)是一个只包含一个DOM元素的jQuery对象。

当本机DOM API足够时,您应该使用普通的“this”,当您需要jQuery的帮助时使用$(this)。你的第二个例子是一个很好的例子。另一个可能是当你只需要元素的“id”或“name”。

所不同的是this本身是该事件时作用在DOM对象的引用。 $(this)正在从该dom对象创建一个jquery对象。

编辑:所以与DOM对象,你不会有权访问所有的jQuery添加功能,但只有dom允许。基本上你可以认为this本身就像你一样document.getElementById(id)

+0

“'this' _by本身就是对DOM对象的事件采取行动upon_参考”,迄今结识最美丽的定义'这',竖起大拇指哥们:)! – Irfan 2017-11-21 06:33:32

$(this)是一个jQuery对象,而this是指原生DOM对象