探索jquery中this指向

 使用jquery时,函数中的this指向分为jquery对象和原生html对象。

创新互联专注于企业成都全网营销推广、网站重做改版、科尔沁网站定制设计、自适应品牌网站建设、HTML5建站商城网站定制开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为科尔沁等各大城市提供网站开发制作服务。

所谓jquery对象就是继承自jquery.fn的对象。

比如$("div")得到一个jquery对象,这个jquery对象封装了页面中所有的div元素,

通过$("div").length可以得到元素的个数;

通过$("div").bind(event, function(e){});可以给页面中的元素注册事件,

关键在于,它是通过给$("div")这个jquery对象封装的每个div元素注册事件来达到目的的,在这里function(e){}中的this指向原生div元素的js对象;

对于jquery.fn.extend({fun1:function{}, fun2:function{}})方法;

它是通过给所有jquery对象隐式链接的对象,即原型对象jquery.fn增加属性来达到目的的,所以所有jquery对象都会继承这里的属性方法;

这样以来fun1和fun2中的this指向变为了jquery对象了,而不是html对象,所以在fun1中可以直接写this.each(function(){})....而不是通过$(this).each(function(){}),尽管后者也是可行

jQuery.fn.extend({

   myMethod: function(){

   $($($(this))).each(function(i){ $(this).click(function() 

       {alert($(this).html().trim() + i)})});

   } }

 

$(" div  p ").myMethod();


网站栏目:探索jquery中this指向
链接分享:http://myzitong.com/article/pjogeh.html