代码改变世界

jquery each函数

2011-04-29 10:52  suzh  阅读(1756)  评论(1编辑  收藏  举报
each的委托类型
$.each=function(object,callback[,args])
      遍例object对象或数组,以每一项作为上下文来执行一个方法。
$("*").each=function(callback[,args])
      以每一个匹配的元素作为上下文来执行一个方法。
说明
在callback中可以直接使用this指针引用数组或是对象的子元素。
当callback返回false时遍例结束。(就像在普通的循环中使用'break')
执行$("*").each(function(name,object){})就相当于执行$.each($("*"),function(name,object){})。
例子
<ul id="ul_listOne">
   <li>rowOne</li>
   <li>rowTwe</li>
</ul>
<ul id="ul_listTwo">
   <li>rowOne</li>
   <li>rowTwe</li>
</ul>

<script type="text/javascript">
$("#ul_listOne li").each(
   function(name,object)
   {
      $(this).html(name+"、"+$(object).html());
   }
);
$.each(
   $("#ul_listTwo li"),
   function(name,object)
   {
      $(this).html(name+"、"+$(object).html());
   }
);
var list=["one", "two"];
$.each(
   list,
   function (name,object)
   {
      alert(name+":"+object);
   }
);
</script>
参数callback的委托类型
当args不存在:
   callback的委托类型为callback(name,object)。
当args存在:
   callback的委托类型为callback([arg1[, arg2[, [,.argN]]]]])(注:arg1, arg2, , argN 是由args参数数组对应的参数序列)。
例子
<script type="text/javascript">
var list=["one", "two"];
$.each(
list,
   function (name,object)
   {
      alert(name+":"+object);
   }
);
$.each(
   list,
   function (arg1,arg2,arg3)
   {
      alert(this+":"+arg1+","+arg2+","+arg3);
   },
   ["a","b","c"]
);
</script>
callback(name,object)方法的name参数
当each的参数object为数组时,传递给name的值是数组中的索引,从零开始。
当each的参数object为对象时,传递给name的值是对象的属性名。
例子
<script type="text/javascript">
var list=["one", "two"];
$.each(
   list,
   function (name,object)
   {
      alert(name+":"+object);
   }
);
var computer={CPU:"6核",RAM:"6G",HDD:"1T"};
$.each(
   computer,
   function (name,object)
   {
      alert(name+":"+object);
   }
);
</script>