jQuery元素遍历方法jQuery.each()

2014-07-18 21:02:03|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:JavaScript, JQuery|来源:唯设编程网

3.each处理json数据

这个each就有更厉害了,能循环每一个属性    

  var obj = { one:1, two:2, three:3};     
  $.each(obj, function(key, val) {     
        alert(key);  
        alert(val);
  });       

这里alert(key)将输出:one two three

alert(val)将输出:1,2,3

这边为何key不是数字而是属性呢,因为json格式内是一组无序的属性-值,既然无序,又何来数字呢。

而这个val等同于obj[key]

4.ecah处理dom元素

此处以一个input表单元素作为例子。

如果你dom中有一段这样的代码

<input name="aaa" type="hidden" value="111" />
<input name="bbb" type="hidden" value="222" />
<input name="ccc" type="hidden" value="333" />
<input name="ddd" type="hidden"  value="444"/>

然后你使用each如下

$.each($("input:hidden"), function(i,val){ 
     alert(val);
     alert(i);
     alert(val.name);
     alert(val.value);  
}); 

那么,alert(val)将输出[object HTMLInputElement],因为它是一个表单元素。  

alert(i)将输出为0,1,2,3

alert(val.name)将输出aaa,bbb,ccc,ddd,如果使用this.name将输出同样的结果

alert(val.value)将输出111,222,333,444,如果使用this.value将输出同样的结果

如果将以上面一段代码改变成如下的形式: 

$("input:hidden").each(function(i,val){
    alert(i);
    alert(val.name);
    alert(val.value);      
});

可以看到,输出的结果是一样的,至于两种写法究竟区别在哪,我也还不知。此改变运用到上面几段数组的操作也会输出同样的结果。

这样,几个例子的实际结果已经得到答案。接着再继续往下研究,总不能知其然不知其所以然。

从以上的例子中可知jQuery和jQuery对象都实现了该方法,对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法。

发表评论0条 】
网友评论(共?条评论)..
jQuery元素遍历方法jQuery.each()