利用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 写类方式之七
Jul 05 Javascript
JS函数实现动态添加CSS样式表文件
Dec 15 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
layui弹出层效果实现代码
May 19 Javascript
JS中的三个循环小结
Jun 20 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
微信小程序之前台循环数据绑定
Aug 18 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
Vue组件化开发之通用型弹出框的实现
Feb 28 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
Nov 10 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
pjblog中的UBBCode.js
2007/04/25 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
python如何调用php文件中的函数详解
2020/12/29 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
幼儿园父亲节活动方案
2014/03/11 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
婚前协议书范本
2014/10/27 职场文书
学生犯错保证书
2015/05/09 职场文书
Java常用函数式接口总结
2021/06/29 Java/Android