利用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 checkbox 全选/反选及批量删除
Apr 28 Javascript
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
实现非常简单的js双向数据绑定
Nov 06 Javascript
ES6概念 Symbol toString()方法
Dec 25 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
Sep 28 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
Vue页面骨架屏注入方法
May 13 Javascript
vue自定义tap指令及tap事件的实现
Sep 18 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
May 11 Javascript
Vue中keep-alive组件的深入理解
Aug 23 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
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
PHP可变函数的使用详解
2013/06/14 PHP
php实现webservice实例
2014/11/06 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
python监控键盘输入实例代码
2018/02/09 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
Python多线程正确用法实例解析
2020/05/30 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
房屋授权委托书范本
2014/10/07 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
2014年村委会工作总结
2014/11/24 职场文书
企业党建工作总结2015
2015/05/26 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
党员公开承诺书2016
2016/03/24 职场文书
Python实现日志实时监测的示例详解
2022/04/06 Python