jQuery:'$(this)'和'this'有什么区别?
我目前正在通过本教程:jQuery入门
对于以下两个示例:
$("#orderedlist").find("li").each(function (i) {
$(this).append(" BAM! " + i);
});
$("#reset").click(function () {
$("form").each(function () {
this.reset();
});
});
注意在第一个例子中,我们使用$(this)
在每个li
元素的内部添加一些文本。 在第二个例子中,我们直接在重置表单时使用this
。
$(this)
似乎比this
更频繁地被使用。
我的猜测是在第一个例子中, $()
将每个li
元素转换为了解append()
函数的jQuery对象,而在第二个例子中,可以直接在窗体上调用reset()
。
基本上我们需要$()
用于特殊的jQuery专用功能。
它是否正确?
是的,当你使用jQuery时,你只需要$()。 如果你想让jQuery帮忙做DOM,只要记住这一点。
$(this)[0] === this
基本上每次你得到一组元素后,jQuery将它变成一个jQuery对象。 如果你知道你只有一个结果,它将在第一个元素。
$("#myDiv")[0] === document.getElementById("myDiv");
等等...
$()
是jQuery的构造函数。
this
是对调用的DOM元素的引用。
所以基本上,在$(this)
,您只是将this
作为参数传递给$()
,以便您可以调用jQuery方法和函数。
是的,您需要$(this)
用于jQuery函数,但是当您想要访问不使用jQuery的基本javascript方法时,您可以使用this
。
上一篇: jQuery: What's the difference between '$(this)' and 'this'?