利用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 相关文章推荐
jQuery EasyUI API 中文文档 - Calendar日历使用
Oct 19 Javascript
向左滚动文字 js代码效果
Aug 17 Javascript
js 跳出页面的frameset框架示例介绍
Dec 23 Javascript
JavaScript保留两位小数的2个自定义函数
May 05 Javascript
JavaScript 计算笛卡尔积实例详解
Dec 02 Javascript
js实现简单的二级联动效果
Mar 09 Javascript
layui select动态添加option的实例
Mar 07 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
vue实现点击追加选中样式效果
Nov 01 Javascript
微信公众号服务器验证Token步骤图解
Dec 30 Javascript
vue 动态组件用法示例小结
Mar 06 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
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
学习jquery之一
2007/04/27 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
星球大战与Python之间的那些事
2016/01/07 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python基础教程之五种数据类型详解
2017/01/12 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python实现最常见加密方式详解
2019/07/13 Python
Django中的用户身份验证示例详解
2019/08/07 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
如何在django中添加日志功能
2020/02/06 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
柏林通行证:Berlin Pass
2018/04/11 全球购物
平面设计专业求职信
2014/08/09 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
政府四风问题整改措施
2014/10/04 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
小学生思想品德评语
2014/12/31 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js