jQuery 插件为什么要return this.each()

jQuery.fn.test2= function(){ 
this.css("background","#ff0");//这里面的this为jquery对象,而不是dom对象
return this.each(function(){ //遍历匹配的元素,此处的this表示为jquery对象,而不是dom对象
alert("this"+this+this.innerHTML); //提示当前对象的dom节点名称,这里的this关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素)。
});

};

先return this.each(),后调用each()方法,而each()方法返回jQuery对象,所以这样就可以继续链式操作了。

首先在JQ中,each是遍历一个数组,比如你$('.some')返回的不一定只是一个jq对象,有可能是个数组,好多个elements.
所以return this.each(){}是把所有你索引的对象都作用到这个插件下.
你若保证你的插件每次都只会用一个JQ对象,那么你可以直接return this.

你可能感兴趣的:(jQuery 插件为什么要return this.each())