一、基本数组和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>