“$(this)”和“this”有什么区别?

时间:2011-08-29 15:10:08

标签: javascript jquery

我正在阅读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?它们之间有什么区别?提前谢谢。

5 个答案:

答案 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