JS基于封装函数实现的表格分页完整示例


Posted in Javascript onJune 26, 2018

本文实例讲述了JS基于封装函数实现的表格分页。分享给大家供大家参考,具体如下:

HTML代码:

<html>
<head>
<meta charset='utf-8'>
<title>3water.com js表格分页</title>
<script type="text/javascript" src="script.js"></script>
 <style type="text/css">
  #idData {color: red;border: solid;text-align: center;}
  a{text-decoration: none;}
 </style>
</head>
<body>
  <table id="idData" width="70%">
    <tr><td>测试编号1</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号2</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号3</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号4</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号5</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号6</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号7</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号8</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号9</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号10</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号11</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号12</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号13</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号14</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号15</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号16</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号17</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号18</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号19</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号20</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号21</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号22</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号23</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号24</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号25</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号26</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号27</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号28</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号29</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号30</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号31</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号32</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号33</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号34</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号35</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号36</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号37</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号38</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号39</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号40</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
  </table>
  <table width="60%" align="right">
    <tr><td><div id="barcon" name="barcon"></div></td></tr>
  </table>
</body>
</html>
<script type="text/javascript" language="javascript">
window.onload = function(){
  goPage(1,10);
};
</script>

script.js:

/**
 * 分页函数
 * pno--页数
 * psize--每页显示记录数
 * 分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数
 * 纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能
 **/
function goPage(pno,psize){
  var itable = document.getElementById("idData");
  var num = itable.rows.length;//表格所有行数(所有记录数)
  console.log(num);
  var totalPage = 0;//总页数
  var pageSize = psize;//每页显示行数
  //总共分几页
  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 = "block";
    }else{
      irow.style.display = "none";
    }
  }
  var pageEnd = document.getElementById("pageEnd");
  var tempStr = "共"+num+"条记录 分"+totalPage+"页 当前第"+currentPage+"页";
  if(currentPage>1){
    tempStr += "<a href=\"#\" onClick=\"goPage("+(1)+","+psize+")\">首页</a>";
    tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage-1)+","+psize+")\"><上一页</a>"
  }else{
    tempStr += "首页";
    tempStr += "<上一页";
  }
  if(currentPage<totalPage){
    tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage+1)+","+psize+")\">下一页></a>";
    tempStr += "<a href=\"#\" onClick=\"goPage("+(totalPage)+","+psize+")\">尾页</a>";
  }else{
    tempStr += "下一页>";
    tempStr += "尾页";
  }
  document.getElementById("barcon").innerHTML = tempStr;
}

使用在线HTML/CSS/JavaScript代码运行工具 http://tools.3water.com/code/HtmlJsRun测试运行效果如下:

JS基于封装函数实现的表格分页完整示例

JS基于封装函数实现的表格分页完整示例

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
优化JavaScript脚本的性能的几个注意事项
Dec 22 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
Feb 28 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
基于javascript实现图片滑动效果
May 07 Javascript
js 判断各种数据类型的简单方法(推荐)
Aug 29 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
javaScript嗅探执行神器-sniffer.js
Feb 14 Javascript
Angular将填入表单的数据渲染到表格的方法
Sep 22 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 Javascript
Vue实现todolist删除功能
Jun 26 #Javascript
AngularJS实现动态切换样式的方法分析
Jun 26 #Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 #Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 #jQuery
在vue中使用公共过滤器filter的方法
Jun 26 #Javascript
Vue不能检测到Object/Array更新的情况的解决
Jun 26 #Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
Jun 26 #Javascript
You might like
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
Javascript Math对象
2009/08/13 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
checkbox使用示例
2013/08/23 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python psutil模块简单使用实例
2015/04/28 Python
在Django的视图中使用form对象的方法
2015/07/18 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
python输入中文的实例方法
2020/09/14 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
2015年个人现实表现材料
2014/12/10 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
Golang 遍历二叉树
2022/04/19 Golang