问题
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)
回答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.
回答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.
回答3:
In jQuery, this refers to the DOM object, and $(this
) refers to the same object but with jQuery methods added
you can't call this.each()
because each is not a DOM method, its a jquery method
you can call $(this).each()
because $(this)
returns a jquery object
回答4:
$(this) is the current object that was selected using a jQuery selector or event attached to the object.
so if you have $('#myelement').click(.....
then $(this)
referes to the element that was clicked on so that $(this).hide()
hides that element.
回答5:
Here are two articles that you may find helpful:
What is this? by Mike Alsup
jQuery's this: demystified by Remy Sharp
回答6:
in jQuery the $() notation is a shorthand for the jQuery selector, so if you say $(this) you are asking jQuery to re-select your object. Then you have the usual jQuery functions available. "this" is the object selected by the outer jQuery call.
回答7:
$(this) is a jQuery object and you can use the power and beauty of jQuery, but with 'this' keyword, one need to use native JavaScript.
来源:https://stackoverflow.com/questions/3633270/difference-between-this-and-this-in-jquery