javascript中的each遍历

each的用法

 1.数组中的each

 

var arr = [ "one", "two","three", "four"];    
 $.each(arr, function(){    
    alert(this);    
 });  
//上面这个each输出的结果分别为:one,two,three,four   
   
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]    
$.each(arr1, function(i, item){    
   alert(item[0]);    
});    
//其实arr1为一个二维数组,item相当于取每一个一维数组,  
//item[0]相对于取每一个一维数组里的第一个值  
//所以上面这个each输出分别为:1   4   7    
 
 
var obj = { one:1, two:2, three:3, four:4};    
$.each(obj, function(i) { 

// function函数中获得的 i是这个属性的名称索引而不是数字索引1,2,3……

// 如果alert(i) 就是 onetwo  ……

   alert(obj[i]);          
});  
//这个each就有更厉害了,能循环每一个属性    
//输出结果为:1   2  3  4

 

 

varobj = { one:1, two:2, three:3, four:4};    
$.each(obj, function() {    
    alert(this);          
});   

//这个更吊 循环 obj对象中的每一属性,this指的就是当前的属性值

// 输出结果 1 2 3 4

 

2.遍历Dom元素中

 

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
 
$("button").click(function(){
   
$("li").each(function(){
     
alert($(this).text())
   
});
  });
});
</script>
</head>
<body>
<button>输出每个列表项的值</button>
<ul>
<li>Coffee</li>
<li>Milk</li>
<li>Soda</li>
</ul>
</body>
</html>

 

依次弹出Coffee,Milk,Soda

 

 3.each和map的比较

下面的例子是获取每一个多框的ID值;

each方法:

定义一个空数组,通过each方法,往数组添加ID值;最后将数组转换成字符串后,alert这个值;

 

$(function(){
   
vararr = [];
   
$(":checkbox").each(function(index){
       
arr.push(this.id);
   
});
    varstr = arr.join(",");
   
alert(str);
})

 

 

map方法:

将每个:checkbox执行returnthis.id;并将这些返回值,自动的保存为jQuery对象,然后用get方法将其转换成原生Javascript数组,再使用join方法转换成字符串,最后alert这个值;

$(function(){
   
varstr = $(":checkbox").map(function() {
       
returnthis.id;
   
}).get().join();   
    alert(str);
})

当有需一个数组的值的时候,用map方法,很方便。

 

 4.jquery中使用each

例遍数组,同时使用元素索引和内容。(i是索引,n是内容)

代码如下:

$.each( [0,1,2], function(i, n){
alert(
"Item #" + i + ": " +n );
});

 

例遍对象,同时使用成员名称和变量内容。(i是成员名称,n是变量内容)

代码如下:

$.each( { name:"John", lang: "JS" }, function(i, n){
alert(
"Name: " + i + ", Value: " + n );
});

 

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

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

<inputname="aaa" type="hidden" value="111" />

<inputname="bbb" type="hidden" value="222" />

<inputname="ccc" type="hidden" value="333" />

<inputname="ddd" type="hidden" value="444"/>

然后你使用each如下

代码如下:

 

 

$.each($("input:hidden"),function(i,val){
alert(val);
//输出[objectHTMLInputElement],因为它是一个表单元素。
alert(i); //输出索引为0,1,2,3
alert(val.name); //输出name的值
alert(val.value); //输出value的值
});

 

 

 

 5.jquery中使用each each中使用this

 

多选框判断是否被选中,如果选中则获取其值:

<div>

<ulid="tes">

<li>1<inputname="aaa" type="checkbox" value="111" />

</li>

<li>2<inputname="bbb" type="checkbox" value="222" />

 </i>

<li>3<inputname="ccc" type="checkbox" value="333" />

</li>

<li>4<inputname="ddd" type="checkbox" value="444" />

</li>

</ul>

</div>

 

<scripttype="text/javascript">

varchk = "";

varchks = "";

vari=0;

$("divul#tes>li").each(function() {

//判断是否被选中,这里的this是指遍历的当前行

// prop  和attr 是一样的效果具体区别查看文档

if($(this).find("input:checkbox").attr("checked")) {

//eq()进行过滤的如果在li下有多个input 则可以使用eq来指定是第一个,eq是从0 开始

chk= $(this).children("input").eq(0).val();

++i;

chk+= ",";

chks+= chk;

}

});

alert(chks);

</script>

 

 

6.官方解释


概述

通用例遍方法,可用于例遍对象和数组。

 

不同于例遍 jQuery 对象的$().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each循环可使回调函数返回 false,其它返回值将被忽略。

 

参数

objectObject

需要例遍的对象或数组。

 

callback (可选)Function

每个成员/元素执行的回调函数

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值