Difference between $(this) and this in jquery

痞子三分冷 提交于 2019-11-26 10:38:58

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!