Chinaunix首页 | 论坛 | 博客
  • 博客访问: 452441
  • 博文数量: 226
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2111
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-20 09:02
个人简介

web web web

文章分类

全部博文(226)

文章存档

2020年(2)

2019年(1)

2018年(3)

2017年(26)

2016年(57)

2015年(60)

2014年(77)

我的朋友

分类: Web开发

2014-11-11 11:06:09

    今天看到$.each(items, function(index, item) { })不是很理解,去查了下$.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)。
阅读(563) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~