使用jquery时,函数中的this指向分为jquery对象和原生html对象。
所谓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();
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。