利用js制作html table分页示例(js实现分页)


Posted in Javascript onApril 25, 2014

有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码

一、JS代码

<script type="text/javascript">
            var pageSize = 15;    //每页显示的记录条数
             var curPage=0;        //当前页
             var lastPage;        //最后页
             var direct=0;        //方向
            var len;            //总行数
            var page;            //总页数
            var begin;
            var end;                
            $(document).ready(function display(){   
                len =$("#mytable tr").length - 1;    // 求这个表的总行数,剔除第一行介绍
                page=len % pageSize==0 ? len/pageSize : Math.floor(len/pageSize)+1;//根据记录条数,计算页数
                // alert("page==="+page);
                curPage=1;    // 设置当前为第一页
                displayPage(1);//显示第一页
                document.getElementById("btn0").innerHTML="当前 " + curPage + "/" + page + " 页    每页 ";    // 显示当前多少页
                document.getElementById("sjzl").innerHTML="数据总量 " + len + "";        // 显示数据量
                document.getElementById("pageSize").value = pageSize;
                
                $("#btn1").click(function firstPage(){    // 首页
                    curPage=1;
                    direct = 0;
                    displayPage();
                });
                $("#btn2").click(function frontPage(){    // 上一页
                    direct=-1;
                    displayPage();
                });
                $("#btn3").click(function nextPage(){    // 下一页
                    direct=1;
                    displayPage();
                });
                $("#btn4").click(function lastPage(){    // 尾页
                    curPage=page;
                    direct = 0;
                    displayPage();
                });
                $("#btn5").click(function changePage(){    // 转页
                    curPage=document.getElementById("changePage").value * 1;
                    if (!/^[1-9]\d*$/.test(curPage)) {
                        alert("请输入正整数");
                        return ;
                    }
                    if (curPage > page) {
                        alert("超出数据页面");
                        return ;
                    }
                    direct = 0;
                    displayPage();
                });
                
                $("#pageSizeSet").click(function setPageSize(){    // 设置每页显示多少条记录
                    pageSize = document.getElementById("pageSize").value;    //每页显示的记录条数
                    if (!/^[1-9]\d*$/.test(pageSize)) {
                        alert("请输入正整数");
                        return ;
                    }
                    len =$("#mytable tr").length - 1;
                    page=len % pageSize==0 ? len/pageSize : Math.floor(len/pageSize)+1;//根据记录条数,计算页数
                    curPage=1;        //当前页
                     direct=0;        //方向
                     firstPage();
                });
            });
            function displayPage(){
                if(curPage <=1 && direct==-1){
                    direct=0;
                    alert("已经是第一页了");
                    return;
                } else if (curPage >= page && direct==1) {
                    direct=0;
                    alert("已经是最后一页了");
                    return ;
                }
                lastPage = curPage;
                // 修复当len=1时,curPage计算得0的bug
                if (len > pageSize) {
                    curPage = ((curPage + direct + len) % len);
                } else {
                    curPage = 1;
                }
                
                document.getElementById("btn0").innerHTML="当前 " + curPage + "/" + page + " 页    每页 ";        // 显示当前多少页
                begin=(curPage-1)*pageSize + 1;// 起始记录号
                end = begin + 1*pageSize - 1;    // 末尾记录号
                
                if(end > len ) end=len;
                $("#mytable tr").hide();    // 首先,设置这行为隐藏
                $("#mytable tr").each(function(i){    // 然后,通过条件判断决定本行是否恢复显示
                    if((i>=begin && i<=end) || i==0 )//显示begin<=x<=end的记录
                        $(this).show();
                });

             }
    </script>

二、HTML代码

<a id="btn0"></a>
<input id="pageSize" type="text" size="1" maxlength="2" value="getDefaultValue()"/><a> 条 </a> <a href="#" id="pageSizeSet">设置</a> 
<a id="sjzl"></a> 
<a  href="#" id="btn1">首页</a>
<a  href="#" id="btn2">上一页</a>
<a  href="#" id="btn3">下一页</a>
<a  href="#" id="btn4">尾页</a> 
<a>转到 </a>
<input id="changePage" type="text" size="1" maxlength="4"/>
<a>页 </a>
<a  href="#" id="btn5">跳转</a>
<table id="mytable" align="center">
...剩余的table代码

最后得到的例子效果如图:

利用js制作html table分页示例(js实现分页)

Javascript 相关文章推荐
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
angularJS 中$scope方法使用指南
Feb 09 Javascript
深入理解JavaScript中的对象
Jun 04 Javascript
js结合正则实现国内手机号段校验
Jun 19 Javascript
jquery实现页面常用的返回顶部效果
Mar 04 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
Apr 18 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
jQuery日程管理控件glDatePicker用法详解
Mar 29 jQuery
使用vue-cli webpack 快速搭建项目的代码
Nov 21 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
Dec 11 Javascript
详解JavaScript 为什么要有 Symbol 类型?
Apr 03 Javascript
js canvas实现5张图片合成一张图片
Jul 15 Javascript
jquery操作select大全
Apr 25 #Javascript
jquery自定义下拉列表示例
Apr 25 #Javascript
jquery常用特效方法使用示例
Apr 25 #Javascript
javascript实现存储hmtl字符串示例
Apr 25 #Javascript
javascript作用域和闭包使用详解
Apr 25 #Javascript
jQuery选择器简明总结(含用法实例,一目了然)
Apr 25 #Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 #Javascript
You might like
新52大事件
2020/03/03 欧美动漫
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
django 自定义用户user模型的三种方法
2014/11/18 Python
python多线程操作实例
2014/11/21 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
python实现多线程网页下载器
2018/04/15 Python
python selenium循环登陆网站的实现
2019/11/04 Python
Keras搭建自编码器操作
2020/07/03 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
信息管理员岗位职责
2013/12/01 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
建筑安全标语
2014/06/07 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
综合管理员岗位职责
2015/02/11 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
2015国庆节宣传语
2015/07/14 职场文书
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技