我正在阅读http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery。并且在这两个代码段中使用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)
和this
?它们之间有什么区别?提前谢谢。
答案 0 :(得分:17)
this
指的是DOM元素本身; $(this)
将元素包装在jQuery对象中。
在第一个示例中,您需要$(this)
,因为.append()
是一个jQuery方法。
在第二个示例中,reset()
是一个JavaScript方法,因此不需要jQuery包装器。
答案 1 :(得分:7)
this
本身只是一个常规对象。
$(this)
接受this
并添加jQuery包装器,以便您可以将jQuery方法与对象一起使用。
答案 2 :(得分:3)
this
指的是DOM对象。所以reset()
是表单DOM对象的函数。另一方面,append()
是一个jQuery方法,所以它必须由jQuery对象调用,因此$(this)
。
使用this
包围$
时,会得到一个表示该DOM对象的jQuery对象。
答案 3 :(得分:2)
通常在jQuery中,this
将是有问题的DOM元素的实例,而$(this)
在this
周围构建一个jQuery对象,它为您提供通常的jQuery方法,如{{1} }和each()
。
答案 4 :(得分:1)
如果你在同一行代码上使用jquery函数跟踪它,你只需要$(this)。
ex: $(this).find(...); $(this).val(); etc
或者您只需要this
。