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 相关文章推荐
指定js可访问其它域名的cookie的方法
Sep 18 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
Jun 18 Javascript
easyui datagrid 键盘上下控制选中行示例
Mar 31 Javascript
教你使用javascript简单写一个页面模板引擎
May 05 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
JS实现向iframe中表单传值的方法
Mar 24 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
Aug 28 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
Jun 06 Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 Javascript
layer页面跳转,获取html子节点元素的值方法
Sep 27 Javascript
JS实现图片切换特效
Dec 23 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
Nov 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面向对象编程快速入门
2006/12/14 PHP
WordPress判断用户是否登录的代码
2011/03/17 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
php导入模块文件分享
2015/03/17 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
js评分组件使用详解
2017/06/06 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
微信小程序文字显示换行问题
2019/07/28 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 元类使用说明
2009/12/18 Python
python实现连接mongodb的方法
2015/05/08 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
python实现画一颗树和一片森林
2018/06/25 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
妇产医师自荐信
2014/01/29 职场文书
学校欢迎标语
2014/06/18 职场文书
离婚协议书范文
2015/01/26 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
新郎结婚感言
2015/07/31 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记