探索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