首页 > 代码库 > jQuery中两种$.each方法拾遗
jQuery中两种$.each方法拾遗
一、在$.each(array, callback)方法中,参数为function(){},一个回调方法,有3种参数形式:
function () { ... }
function(index) { ... }
function (index, item) { ... }
index是指array中每一项的顺序索引,从0开始计数。
item是array中的每一项。
如果未指定item,也是可以使用项的,在callback内部使用this可以获取到item。这是和js的特性有关的,这里的this其实是相关的上下文,只是被设置成了item而已。关于此特性请查看其他相关文章。
由于js的function是不存在重载的,所以实际上根据传入的arguments来判断也是可以的。以下是jQuery 1.4.2文档中提供的例子:
$.each( [0,1,2], function(i, n){
alert( "Item #" + i + ": " + n );
});
i即index,n即item。
假设说你使用了无参的callback。也是可以使用arguments[0]来代替i,用arguments[1]来代替n。在通常情况下,如果不需要对参数是否有传入而做判断则自然不必要使用arguments。
二、$("...").each(callback)方法:
事实上,该方法可以当做一个特殊情况的$.each(array, callback)的快捷方法
这里的array被替换作了$("..."),一组jQuery集合。但是要注意的地方是在callback方法内部,传入的item,即this参数,却不是一个jQuery对象,而是一个HtmlDom对象。所以如果要对这里的元素进行操作,比如使用$(this)。e.g.
$("table").each(function(){
alert(this); //[Object HTMLTableElement]
alert($(this)); //[Object Object]
});
三、跳出:
在callback中return false 将停止循环 (break)。
在callback中return true 跳至下一个循环(continue)。
jQuery中两种$.each方法拾遗