利用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 相关文章推荐
js function定义函数使用心得
Apr 15 Javascript
return false,对阻止事件默认动作的一些测试代码
Nov 17 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
AngularJS中$http的交互问题
Mar 29 Javascript
20行js代码实现的贪吃蛇小游戏
Jun 20 Javascript
Vue filter介绍及详细使用
Apr 04 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 Javascript
js实现省级联动(数据结构优化)
Jul 17 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 无线电
操作Oracle的php类
2006/10/09 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
PHP实现小偷程序实例
2016/10/31 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
js 动态文字滚动的例子
2011/01/17 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
浅析Python中的多条件排序实现
2016/06/07 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
使用TensorFlow实现SVM
2018/09/06 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
keras.layer.input()用法说明
2020/06/16 Python
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
学生实习介绍信
2014/01/15 职场文书
自主招生自荐信指南
2014/02/04 职场文书
眼镜促销方案
2014/03/15 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
上党课的心得体会
2014/09/02 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
对讲机知识
2022/04/07 无线电