jQuery: What's the difference between '$(this)' and 'this'?

I am currently working through this tutorial: Getting Started with jQuery

For the two examples below:

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

Notice in the first example, we use $(this) to append some text inside of each li element. In the second example we use this directly when resetting the form.

$(this) seems to be used a lot more often than this .

My guess is in the first example, $() is converting each li element into a jQuery object which understands the append() function whereas in the second example reset() can be called directly on the form.

Basically we need $() for special jQuery-only functions.

Is this correct?


Yes you only need $() when you're using jQuery. If you want jQuery's help to do DOM things just keep this in mind.

$(this)[0] === this

Basically every time you get a set of elements back jQuery turns it into a jQuery object. If you know you only have one result, it's going to be in the first element.

$("#myDiv")[0] === document.getElementById("myDiv");

And so on...


$() is the jQuery constructor function.

this is a reference to the DOM element of invocation.

So basically, in $(this) , you are just passing the this in $() as a parameter so that you could call jQuery methods and functions.


是的,您需要$(this)用于jQuery函数,但是当您想要访问不使用jQuery的基本javascript方法时,您可以使用this

链接地址: http://www.djcxy.com/p/19532.html

上一篇: jQuery.click()vs onClick

下一篇: jQuery:'$(this)'和'this'有什么区别?