js分页效果
对于一些table表格数据较多的页面,需要用的分页;缺点是table中的数据是固定的数据,该页面是根据其他文章做得改编。分页的效果如下所示:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>table数据分页</title>
<style type="text/css">
#barcon > span{
display: inline-block;
width: 80px;
height: 30px;
text-align: center;
line-height: 30px;
border:1px solid #eee;
box-sizing: border-box;
border-radius: 4px;
margin: 0 5px;
}
#barcon a{
display: inline-block;
width: 30px;
width: 30px;
text-align: center;
line-height: 30px;
border-radius: 4px;
border:1px solid #eee;
margin-right: 5px;
}
#barcon #totalPage{
border:none;
text-align: right;
}
#barcon .pags{
width: 50px;
}
#barcon .nextpage{
margin-left: 0px;
}
.sigle{
cursor: pointer;
}
.pag-color{
background-color: #eee;
color: pink;
}
</style>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
</head>
<body>
<table id="idData" width="70%">
<tr><td>liujinzhong9</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong10</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong11</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong12</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong13</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong14</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong15</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong16</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong17</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong18</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong19</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong20</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong21</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong22</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong23</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong24</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong25</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong26</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong27</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong28</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong29</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong30</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong31</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong32</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong33</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong34</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong35</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong36</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong37</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong38</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong39</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
<tr><td>liujinzhong40</td><td>25</td><td>男</td><td>山西吕梁</td></tr>
</table>
<div id="barcon" name="barcon"></div>
<script type="text/javascript">
/**
* 分页函数
* pno--页数
* psize--每页显示记录数
* 分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数
* 纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能
**/
function goPage(pno){
var itable = document.getElementById("idData");
var num = itable.rows.length;//表格所有行数(所有记录数)
console.log(num);
var totalPage = 0;//总页数
var pageSize = 5;//每页显示行数
//总共分几页
if(num/pageSize > parseInt(num/pageSize)){
totalPage=parseInt(num/pageSize)+1;
}else{
totalPage=parseInt(num/pageSize);
}
var currentPage = pno;//当前页数
var startRow = (currentPage - 1) * pageSize+1;//开始显示的行 31
var endRow = currentPage * pageSize;//结束显示的行 40
endRow = (endRow > num)? num : endRow; //40
console.log(endRow);
//遍历显示数据实现分页
for(var i=1;i<(num+1);i++){
var irow = itable.rows[i-1];
if(i>=startRow && i<=endRow){
irow.style.display = "table-row";
}else{
irow.style.display = "none";
}
}
var pageEnd = document.getElementById("pageEnd");
var tempStr = "<span id='totalPage'>共"+totalPage+"页</span>";
tempStr += "<strong >共 "+num+" 条记录</strong>";
if(currentPage>1){
tempStr += "<span class='btn pags sigle' href=\"#\" onClick=\"goPage("+(1)+")\">首页</span>";
tempStr += "<span class='btn sigle' href=\"#\" onClick=\"goPage("+(currentPage-1)+")\">上一页</span>"
}else{
tempStr += "<span class='btn pags sigle'>首页</span>";
tempStr += "<span class='btn sigle'>上一页</span>";
}
for(var pageIndex= 1;pageIndex<totalPage+1;pageIndex++){
tempStr += "<a onclick=color:red;\"goPage("+pageIndex+")\"><span class='sigle'>"+ pageIndex +"</span></a>";
}
if(currentPage<totalPage){
tempStr += "<span class='btn sigle' href=\"#\" onClick=\"goPage("+(currentPage+1)+")\">下一页</span>";
tempStr += "<span class='btn pags sigle' href=\"#\" onClick=\"goPage("+(totalPage)+")\">尾页</span>";
}else{
tempStr += "<span class='btn nextpage sigle'>下一页</span>";
tempStr += "<span class='btn pags sigle'>尾页</span>";
}
document.getElementById("barcon").innerHTML = tempStr;
}
goPage(3);//goPage(startPage);//startPage表示数据从第几页开始
</script>
</body>
</html>
原本想发表动态数据分页,但是出现些问题,后面会更新动态数据分页~~~