jquery常用遍历循环处理

‍‍一、基本数组和for循环

最基本的遍历输出:

$(function(){
	var arr=[111,222,333,444,555,666];
	for(var i=0;i<arr.length;i++){
		$("#tab").append("<tr><td>"+arr[i]+"</td></tr>");
	};
	
});

html结构:

   <div class="box">
    	<table id="tab">
    		
    	</table>
    </div>

二、基本数组和for in循环

$(function(){
	var arr=[111,222,333,444,555,666];
	for(var i in arr){
		$("#tab").append("<tr><td>"+arr[i]+"</td></tr>");
	};
	
});

、object类型和for in循环

$(function(){
	var obj={'a':123,'b':456,'c':789};
	for(var i in obj){
		$("#tab").append("<tr><td>"+obj[i]+"</td></tr>");
	};

	
});

、基本数组和while循环

$(function(){
	var arr=[111,222,333,444,555,666];
	var index=0;
	while(arr[index]){		
		$("#tab").append("<tr><td>"+arr[index]+"</td></tr>");
		index+=1;
	}
	
});

五、二维数组和for循环

$(function(){
	var arr=[[1,1111],[2,222],[3,333]];
	for(var i=0;i<arr.length;i++){
		var tr=$("<tr></tr>")
		for(var j=0;j<arr[i].length;j++){
			tr.append("<td>"+arr[i][j]+"</td>")
		};
		$("#tab").append(tr)
	};
	
});

六、json类型和for循环&&for in循环

$(function(){
	var arr=[{'姓名':111,'性别':0},{'姓名':888,'性别':0},{'姓名':999,'性别':1}];
	for(var i=0;i<arr.length;i++){
		var tr=$("<tr></tr>")
		for(var j in arr[i]){
			tr.append("<td>"+arr[i][j]+"</td>")
		};
		$("#tab").append(tr)
	};
	
});

七、json类型和while循环&&for in循环

$(function(){
	var arr=[{'姓名':111,'性别':0},{'姓名':888,'性别':0},{'姓名':999,'性别':1}];
	var i=0;
	while(arr[i]){
		var tr=$("<tr></tr>")
		for(var j in arr[i]){
			tr.append("<td>"+arr[i][j]+"</td>")
		};
		$("#tab").append(tr);
		i+=1;
	};
	
});

总结:

for循环非常简单

for in要记住的就是定义的变量接收的是循环对象的下标

while循环要定义循环指针变量,通过条件成立(获取到内容)让指针下移动(+1),获取不到内容(指针指到最后一个的下一个)条件不成立不在进行循环


八、字符串和while循环

var str="好11111111,人222222222,在3333333333,那4444444444,里55555555";
var val="在";

如何输出 :‘在’后面的所有‘3’??

方法一:数组处理

$(function(){
	var str="好11111111,人222222222,在3333333333,那4444444444,里55555555";
	var val="在";
	var changearr=str.split(',');
	var rres;
	for(var i=0;i<changearr.length;i++){
		var temp=changearr[i].split('');
		if(temp[0]==val){
			rres=temp;
		}
	};
	var res='';
	for(var i=0;i<rres.length;i++){
		if(i==0){

		}else{
			res+=rres[i];
		}
	};
	alert(res)
	
});

方法2:while处理

$(function(){
	var str="好11111111,人222222222,在3333333333,那4444444444,里55555555";
	var val="在";
	var index=str.search(val);
	var i=1;
	var res='';
	while(str.charAt(index+i)!=","){
		res+=str.charAt(index+i);
		i+=1;
	};
	alert(res)
	
});

九、for循环跳跃式

差值为3的跳跃

$(function(){
	var arr=[11,22,33,111,22,33,111,22,33];
	var newarr=[];
	for(var i=0;i<arr.length;i+=3){
		newarr+=arr[i];
	};
	alert(newarr);
	
});

我们在做canvas的时候,2d画布有一个getimagedata方法,可以返回一个对象得到他的data值,为一维数组,按照[r,g,b,a,r,g,b,a,......]形式

我们的理想状态就是[rgba,rgba,......],我们就会用到差值为4的循环处理

$(function(){
	var arr=[0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255];
	var rgbaarr=[];
	for(var i=0;i<arr.length;i+=4){
		var r=arr[i];
		var g=arr[i+1];
		var b=arr[i+2];
		var a=arr[i+3];
		var rgba=r+" "+g+" "+b+" "+a;
		rgbaarr.push(rgba);
	};
	alert(rgbaarr);
	
});

十、for循环递减,实现数组反转

有一个这样的数组

var arr=[9,8,7,6,5,4,3,2,1,0];

反转处理1:数组提供的reverse方法

$(function(){
	var arr=[9,8,7,6,5,4,3,2,1,0];
	alert(arr.reverse())
	
});

反转处理2:数组降序循环

$(function(){
	var arr=[9,8,7,6,5,4,3,2,1,0];
	var rearr=[];
	for(var i=(arr.length-1);i>=0;i--){
		rearr.push(arr[i]);
	}
	alert(rearr)
	
});

十一、for循环跳跃减

同增加跳跃同理

$(function(){
	var arr=[9,8,7,6,5,4,3,2,1,0];
	var rearr=[];
	for(var i=(arr.length-1);i>=0;i-=3){
		rearr.push(arr[i]);
	}
	alert(rearr)
	
});

十二do while循环

把上面while的改成do while 先执行程序,在判断条件是否为真

$(function(){
	var arr=[111,222,333,444,555,666];
	var index=0;
	do{
		$("#tab").append("<tr><td>"+arr[index]+"</td></tr>");
		index+=1;
	}while(arr[index]);
	
});

十三、利用for循环实现加载更多效果(假如有35条数据,开始显示10条,点击‘加载更多’在显示10条,依次到最后)

我们创建35条数据,json类型,类似模拟ajax的加载跟多处理

var jsondata=[
		{'aa':111,'bb':111111},
		{'aa':222,'bb':111111},
		{'aa':333,'bb':111111},
		{'aa':444,'bb':111111},
		{'aa':555,'bb':111111},
		{'aa':666,'bb':111111},
		{'aa':777,'bb':111111},
		{'aa':888,'bb':111111},
		{'aa':999,'bb':111111},
		{'aa':123,'bb':111111},
		{'aa':456,'bb':111111},
		{'aa':789,'bb':111111},
		{'aa':987,'bb':111111},
		{'aa':654,'bb':111111},
		{'aa':321,'bb':111111},
		{'aa':556,'bb':111111},
		{'aa':223,'bb':111111},
		{'aa':112,'bb':111111},
		{'aa':889,'bb':111111},
		{'aa':778,'bb':111111},
		{'aa':998,'bb':111111},
		{'aa':447,'bb':111111},
		{'aa':852,'bb':111111},
		{'aa':741,'bb':111111},
		{'aa':963,'bb':111111},
		{'aa':369,'bb':111111},
		{'aa':258,'bb':111111},
		{'aa':147,'bb':111111},
		{'aa':753,'bb':111111},
		{'aa':159,'bb':111111},
	];

我们静态html结构,添加加载更多按钮,

<div class="box">
    	
    </div>
    <button id="more">加载更多</button>

我们的整体实现,核心是(page-1)*limit 我们当前的页数减去1乘以显示个数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
 *{ margin:0; padding:0;}  
</style>
<script src="js/jquery-min.js"></script>
<title>demo</title>
</head>
<body> 
    <div class="box">
    	
    </div>
    <button id="more">加载更多</button>
</body>
<script type="text/javascript"> 
$(function(){
	var jsondata=[
		{'aa':111,'bb':111111},
		{'aa':222,'bb':111111},
		{'aa':333,'bb':111111},
		{'aa':444,'bb':111111},
		{'aa':555,'bb':111111},
		{'aa':666,'bb':111111},
		{'aa':777,'bb':111111},
		{'aa':888,'bb':111111},
		{'aa':999,'bb':111111},
		{'aa':123,'bb':111111},
		{'aa':456,'bb':111111},
		{'aa':789,'bb':111111},
		{'aa':987,'bb':111111},
		{'aa':654,'bb':111111},
		{'aa':321,'bb':111111},
		{'aa':556,'bb':111111},
		{'aa':223,'bb':111111},
		{'aa':112,'bb':111111},
		{'aa':889,'bb':111111},
		{'aa':778,'bb':111111},
		{'aa':998,'bb':111111},
		{'aa':447,'bb':111111},
		{'aa':852,'bb':111111},
		{'aa':741,'bb':111111},
		{'aa':963,'bb':111111},
		{'aa':369,'bb':111111},
		{'aa':258,'bb':111111},
		{'aa':147,'bb':111111},
		{'aa':753,'bb':111111},
		{'aa':159,'bb':111111},
		{'aa':000,'bb':00000},
		{'aa':0,'bb':000},
		{'aa':00,'bb':000},
		{'aa':0000,'bb':0}
	];
	var page=1;
	var limit=10;
	for(var i=0;i<limit;i++){
		$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
	}

	$("#more").click(function(){
		page+=1;
		for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
		$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
		}
	});
	
});
</script>

</html>

十四、利用for循环实现分页效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
 *{ margin:0; padding:0;}  
 p span{ margin: 0 5px;color: blue; cursor:pointer;}
p span.fou{color: red; }
.box{height: 200px;}
</style>
<script src="js/jquery-min.js"></script>
<title>demo</title>
</head>
<body> 
    <div class="box">
    	
    </div>
    <p id="page"></p>
</body>
<script type="text/javascript"> 
$(function(){
	var jsondata=[
		{'aa':111,'bb':111111},
		{'aa':222,'bb':111111},
		{'aa':333,'bb':111111},
		{'aa':444,'bb':111111},
		{'aa':555,'bb':111111},
		{'aa':666,'bb':111111},
		{'aa':777,'bb':111111},
		{'aa':888,'bb':111111},
		{'aa':999,'bb':111111},
		{'aa':123,'bb':111111},
		{'aa':456,'bb':111111},
		{'aa':789,'bb':111111},
		{'aa':987,'bb':111111},
		{'aa':654,'bb':111111},
		{'aa':321,'bb':111111},
		{'aa':556,'bb':111111},
		{'aa':223,'bb':111111},
		{'aa':112,'bb':111111},
		{'aa':889,'bb':111111},
		{'aa':778,'bb':111111},
		{'aa':998,'bb':111111},
		{'aa':447,'bb':111111},
		{'aa':852,'bb':111111},
		{'aa':741,'bb':111111},
		{'aa':963,'bb':111111},
		{'aa':369,'bb':111111},
		{'aa':258,'bb':111111},
		{'aa':147,'bb':111111},
		{'aa':753,'bb':111111},
		{'aa':159,'bb':111111},
		{'aa':000,'bb':00000},
		{'aa':0,'bb':000},
		{'aa':00,'bb':000},
		{'aa':0000,'bb':0}
	];
	var page=1;
	var limit=10;
	var allapge=(jsondata.length%limit==0)?jsondata.length/limit:Math.floor(jsondata.length/limit)+1;
	for(var i=1;i<=allapge;i++){
		if(i==1){
			$("#page").append('<span class="fou">'+i+'</span>');
		}else{
			$("#page").append('<span>'+i+'</span>');
		}
		
	}
	for(var i=0;i<limit;i++){
		$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
	}

	$("#page").children().click(function(){
		$(this).addClass('fou').siblings().removeClass('fou');
		page=$(this).html();
		$(".box").children().remove();
		for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
			$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
		}
	});
});
</script>

</html>

与加载跟多分页的难度就是总页数的处理

var page=1;
	var limit=10;
	var allapge=(jsondata.length%limit==0)?jsondata.length/limit:Math.floor(jsondata.length/limit)+1;

记录总个数与显示个数取余数(模)判断是否整除,不整除+1页

我们的分页添加其他页面处理按钮:第一页,最后一页,跳页,上一页,下一页;

基本功能完善的分页实现:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
 *{ margin:0; padding:0;}  
 p span{ margin: 0 5px;color: blue; cursor:pointer;}
p span.fou{color: red; }
.box{height: 200px;}
</style>
<script src="js/jquery-min.js"></script>
<title>demo</title>
</head>
<body> 
    <div class="box">
    	
    </div>
    <p id="page"></p>
    <p id="other">
    	<span id="first">第一页</span>
    	<span id="prev">上一页</span>
    	<span id="next">下一页</span>
    	<span id="last">最后一页</span>
    	<input type="text" id="sum" /><span id="skip">跳转</span>
    </p>
</body>
<script type="text/javascript"> 
$(function(){
	var jsondata=[
		{'aa':111,'bb':111111},
		{'aa':222,'bb':111111},
		{'aa':333,'bb':111111},
		{'aa':444,'bb':111111},
		{'aa':555,'bb':111111},
		{'aa':666,'bb':111111},
		{'aa':777,'bb':111111},
		{'aa':888,'bb':111111},
		{'aa':999,'bb':111111},
		{'aa':123,'bb':111111},
		{'aa':456,'bb':111111},
		{'aa':789,'bb':111111},
		{'aa':987,'bb':111111},
		{'aa':654,'bb':111111},
		{'aa':321,'bb':111111},
		{'aa':556,'bb':111111},
		{'aa':223,'bb':111111},
		{'aa':112,'bb':111111},
		{'aa':889,'bb':111111},
		{'aa':778,'bb':111111},
		{'aa':998,'bb':111111},
		{'aa':447,'bb':111111},
		{'aa':852,'bb':111111},
		{'aa':741,'bb':111111},
		{'aa':963,'bb':111111},
		{'aa':369,'bb':111111},
		{'aa':258,'bb':111111},
		{'aa':147,'bb':111111},
		{'aa':753,'bb':111111},
		{'aa':159,'bb':111111},
		{'aa':000,'bb':00000},
		{'aa':0,'bb':000},
		{'aa':00,'bb':000},
		{'aa':0000,'bb':0}
	];
	var page=1;
	var limit=10;
	var allapge=(jsondata.length%limit==0)?jsondata.length/limit:Math.floor(jsondata.length/limit)+1;
	for(var i=1;i<=allapge;i++){
		if(i==1){
			$("#page").append('<span class="fou">'+i+'</span>');
		}else{
			$("#page").append('<span>'+i+'</span>');
		}
		
	}
	for(var i=0;i<limit;i++){
		$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
	}

	$("#page").children().click(function(){
		$(this).addClass('fou').siblings().removeClass('fou');
		page=$(this).html();
		$(".box").children().remove();
		for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
			$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
		}
	});

	$("#first").click(function(){
		$("#page").children().eq(0).addClass('fou').siblings().removeClass('fou');
		page=1;
		$(".box").children().remove();
		for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
			$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
		}
	});
	$("#last").click(function(){
		$("#page").children().eq($("#page").children().length-1).addClass('fou').siblings().removeClass('fou');
		page=$("#page").children().length;
		$(".box").children().remove();
		for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
			$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
		}
	});
	$("#prev").click(function(){
		if(page==1){
			$("#page").children().eq(0).addClass('fou').siblings().removeClass('fou');
			page=1;
			$(".box").children().remove();
			for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
				$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
			}
		}else{
			$("#page").children().eq(page-2).addClass('fou').siblings().removeClass('fou');
			page=page-1;
			$(".box").children().remove();
			for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
				$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
			}
		}
		
	});
	
	$("#next").click(function(){
		if(page==$("#page").children().length){
			$("#page").children().eq($("#page").children().length-1).addClass('fou').siblings().removeClass('fou');
			page=$("#page").children().length;
			$(".box").children().remove();
			for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
				$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
			}
		}else{
			$("#page").children().eq(page).addClass('fou').siblings().removeClass('fou');
			page=page+1;
			$(".box").children().remove();
			for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
			$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
		}
		}
		
	});
	$("#skip").click(function(){
		if($("#sum").val()>0 && $("#sum").val()<=$("#page").children().length){
			$("#page").children().eq($("#sum").val()-1).addClass('fou').siblings().removeClass('fou');
			page=$("#sum").val();
			$(".box").children().remove();
			for(var i=(page-1)*limit;i<(page-1)*limit+limit;i++){
				$(".box").append('<p><span>'+jsondata[i].aa+'</span><em>'+jsondata[i].bb+'</em></p>');
			}
		}else{

		}
		
	});

});
</script>

</html>


转载于:https://my.oschina.net/tbd/blog/508397

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery循环遍历数组有多种方法。其中,最常用的方法是使用for循环和for in循环。另外,还可以使用while循环和forEach方法。以下是具体的解释和示例: 1. 使用for循环遍历数组: 在jQuery中,可以使用for循环遍历数组。通过定义一个索引变量i,可以遍历数组的每个元素。示例代码如下: ```javascript $(function(){ var arr = [111,222,333,444,555,666]; for(var i = 0; i < arr.length; i++){ $("#tab").append("<tr><td>" + arr[i + "</td></tr>"); }; }); ``` 在这个示例中,我们定义了一个名为arr的数组,包含了一些数字。然后,使用for循环遍历数组中的每个元素,并将它们添加到id为"tab"的表格中。 2. 使用for in循环遍历数组: 另一种遍历数组的方法是使用for in循环。这种方法会遍历数组中的每个元素,并将其索引赋值给一个变量。示例代码如下: ```javascript $(function(){ var arr = [111,222,333,444,555,666]; for(var i in arr){ $("#tab").append("<tr><td>" + arr[i + "</td></tr>"); }; }); ``` 在这个示例中,我们使用for in循环遍历数组arr。每次循环时,将数组中对应索引的元素添加到id为"tab"的表格中。 3. 使用while循环遍历数组: 除了使用for循环和for in循环,还可以使用while循环遍历数组。示例代码如下: ```javascript $(function(){ var arr = [111,222,333,444,555,666]; var index = 0; while(arr[index]){ $("#tab").append("<tr><td>" + arr[index + "</td></tr>"); index++; } }); ``` 在这个示例中,我们使用while循环遍历数组arr。通过判断数组中对应索引的元素是否存在,来确定循环的条件。每次循环时,将数组中对应索引的元素添加到id为"tab"的表格中,并将索引值递增。 综上所述,以上是使用jQuery循环遍历数组的几种方法。你可以根据具体的需求选择适合的方法来遍历数组。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值