jQuery里$(this)和this的使用有什么区别

时间:2013-06-09
简介:WEB前端|如果你要使用html元素本身的属性或方法就需要使用this,如果你要使用jQuery包装后的方法或属性就要$(this),一般则有如下的关系.$(this)[0]==this;上文的代码是要使用thi...

如果你要使用html元素本身的属性或方法就需要使用this,如果你要使用jQuery包装后的方法或属性就要$(this),一般则有如下的关系.

$(this)[0] == this;上文的代码是要使用this的地方是要调用表单form的有reset方法,而这一方法jQuery没有包装支持,所以才有this.reset(),也可以使用$(this)[0].reset();

关于什么时候使用二者?可以看如下例子:


[html] 
<a href="http://www.ablanxue.com/" target="_blank" data-id="1010000000125418">jQuery</a> 

<a href="http://www.ablanxue.com/" target="_blank" data-id="1010000000125418">jQuery</a>
[javascript] view plaincopyprint?
$('a').click(function(){ 
        this.innerHTM==$(this).html()=='jQuery';//三者是一样的.  
        this.getAttribute('href')==this.href==$(this).attr('href')//三者是一样的;  
        this.getAttribute('target')==this.target==$(this).attr('target')//三者是一样的;  
        this.getAttribute('data-id')==$(this).attr('data-id')//二者是一样的;  
    }); 

$('a').click(function(){
        this.innerHTM==$(this).html()=='jQuery';//三者是一样的.
        this.getAttribute('href')==this.href==$(this).attr('href')//三者是一样的;
        this.getAttribute('target')==this.target==$(this).attr('target')//三者是一样的;
        this.getAttribute('data-id')==$(this).attr('data-id')//二者是一样的;
    });
从以上代码可以看出二者的差异.

 

 

或者 简单理解:

this是html元素对象吧~
$(this)成为jQuery对象


或者 :


this 是 JavaScript 中的关键字。
$(this) 可以认为是用 jQuery 包装过 JavaScript 中的 this,包装后 $(this) 就会继承 jQuery 的方法。

TAGS:$(this)和this区别

上一编:不管老手新手做jquery插件开发都要看看jquery插件开发注意事项

下一编:jquery上传插件(uploadify)的使用教程

NewHot手机版