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

javascript, jquery, this

Solution

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...

Problem

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?

Original source