码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中this和$(this)之间的区别

时间:2014-11-15 00:04:25      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   使用   sp   

jQuery中this和$(this)之间的区别:

this返回的是当前对象的html对象,而$(this)返回的是当前对象的jQuery对象

举个正确的Demo实例:

bubuko.com,布布扣
$("#textbox").hover(
    function() {
        this.title = "Test";
    },         
    fucntion() {             
        this.title = "OK”;         
    }   
 );
View Code

 以上的this为html元素即元素textbox,该元素有title属性,因此以上的程序没有错误。如果将以上的程序中this替换成$(this)时,该程序就会报错,因为$(this)返回的是一个jQuery对象,而jQuery对象是没有title这些属性的,而$(this)中有方法可以对html元素中title属性进行设置和修改。代码如下:

bubuko.com,布布扣
 $("#textbox").hover(
         function() {
            $(this).attr(‘title‘, ‘Test‘);
         },         
        fucntion() {             
            $(this).attr(‘title‘, ‘OK‘);         
        }   
 );
View Code

使用jQuery的好处是它包裝了各种浏览器版本对DOM对象的操作,因此统一使用$(this)而不再用this应该是比较不错的选择。

 

$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。如扩展$.fn.test(),即$.fn.test()是对jquery扩展了一个test方法,那么后面你的每一个jquery实例都可以引用这个方法了。

jQuery为开发插件提拱了两个方法,分别是:jQuery.extend(object):为扩展jQuery类本身.为类添加新的方法和jQuery.fn.extend(object):给jQuery对象添加方法。

也就是说jQuery.extend(object)相当于扩展静态的方法而jQuery.fn.extend(object)相当于扩展非静态的成员方法。

jQuery.extend(object)Demo实例代码如下:

bubuko.com,布布扣
$.extend({ 
  add:function(a,b){returna+b;} 
}); 
View Code

使用方法如下:$.add(3,4); //return 7
jQuery.fn.extend(object)是对jQuery.prototype进得扩展,jQuery类的实例可以使用这个“成员函数”。 Demo实例代码如下:

bubuko.com,布布扣
$.fn.extend({ 
    alertWhileClick: function(){ 
        $(this).click(function(){ 
            alert($(this).val()); 
        }); 
    } 
}); 
View Code

 

JavaScript中this和$(this)之间的区别

标签:style   blog   http   io   color   ar   os   使用   sp   

原文地址:http://www.cnblogs.com/chengbing2011/p/4098337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!