Difference between $(this) and this in jquery
What is the fundamental difference between using $(this) vs this
$('.viewComments').click(function(ev){
//returns the desired value
alert(this.getAttribute('id'));
//Gives an error sayin function is not defined
alert($(this).getAttribute('id'));
//returns the desired value
alert($(this).attr('id'));
});
What I thought was "$(this)" will contain all functions that "this" has and more..But that doesn't seem to be the case.
So what exactly is $(this)? and
Hw do I know what functions are available when I'm using it? (I know I can get them through firebug. but I would like to know if there any some other way- some doc may be)
Solution 1:
this
is the DOM object, whereas $(this)
is the jQuery wrapper around same.
When using this
, you can call DOM methods on it, but not jQuery methods. When using $(this)
, you can call jQuery methods on it, but not DOM methods.
Solution 2:
$(this) - represent current DOM element on which event this function is called
The this keyword - In JavaScript this always refers to the “owner” of the function we're executing, or rather, to the object that a function is a method of.