利用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 相关文章推荐
再谈ie和firefox下的document.all属性
Oct 21 Javascript
JQuery+DIV自定义滚动条样式的具体实现
Jun 25 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
Mar 03 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
微信小程序 小程序制作及动画(animation样式)详解
Jan 06 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
extjs简介_动力节点Java学院整理
Jul 17 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
Nov 22 Javascript
Vue源码探究之虚拟节点的实现
Apr 17 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python输出各行命令详解
2018/02/01 Python
python破解zip加密文件的方法
2018/05/31 Python
Python执行时间的几种计算方法
2020/07/31 Python
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
一个SQL面试题
2014/08/21 面试题
中科软测试工程师面试题
2012/06/16 面试题
节约粮食标语
2014/06/18 职场文书
学校欢迎标语
2014/06/18 职场文书
军训通讯稿范文
2015/07/18 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers