利用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系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
写自已的js类库需要的核心代码
Jul 16 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
Jun 24 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
Jun 30 Javascript
js实现正方形颜色从下往上升的效果
Aug 04 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 Javascript
详解Immutable及 React 中实践
Mar 01 Javascript
Angular6 写一个简单的Select组件示例
Aug 20 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
Nov 12 Javascript
Angular6项目打包优化的实现方法
Dec 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
一个PHP+MSSQL分页的例子
2006/10/09 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
python批量提取word内信息
2015/08/09 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
Python any()函数的使用方法
2019/10/28 Python
Python中常用的os操作汇总
2020/11/05 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
Yahoo-PHP面试题2
2014/12/06 面试题
初二生物教学反思
2014/02/03 职场文书
高一化学教学反思
2014/02/05 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
关于学习的决心书
2015/02/05 职场文书
外科护士长工作总结
2015/08/12 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers