利用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 相关文章推荐
c#和Javascript操作同一json对象的实现代码
Jan 17 Javascript
JavaScript插件化开发教程 (四)
Jan 27 Javascript
JavaScript实现在页面间传值的方法
Apr 07 Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 Javascript
js获取form表单所有数据的简单方法
Aug 18 Javascript
Linux CentOS系统下安装node.js与express的方法
Apr 01 Javascript
js 取消页面可以选中文字的功能方法
Jan 02 Javascript
webpack公共组件引用路径简化小技巧
Jun 15 Javascript
快速解决vue-cli在ie9+中无效的问题
Sep 04 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
Sep 19 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php 表单验证实现代码
2009/03/10 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
matplotlib中legend位置调整解析
2017/12/19 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
基于python实现查询ip地址来源
2020/06/02 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
助人为乐模范事迹材料
2014/06/02 职场文书
小学亲子活动总结
2014/07/01 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
放假通知格式
2015/04/14 职场文书
校友会致辞
2015/07/30 职场文书
车辆管理制度范本
2015/08/05 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
MySQL之select、distinct、limit的使用
2021/11/11 MySQL