利用js制作html table分页示例(js实现分页)

 更新时间:2014年04月25日 11:50:51   作者:  
这篇文章主要介绍了利用js制作html table的分页示例(js实现分页),需要的朋友可以参考下

有时候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>&nbsp;
<a id="sjzl"></a>&nbsp;
<a  href="#" id="btn1">首页</a>
<a  href="#" id="btn2">上一页</a>
<a  href="#" id="btn3">下一页</a>
<a  href="#" id="btn4">尾页</a>&nbsp;
<a>转到&nbsp;</a>
<input id="changePage" type="text" size="1" maxlength="4"/>
<a>页&nbsp;</a>
<a  href="#" id="btn5">跳转</a>

<table id="mytable" align="center">
...剩余的table代码

最后得到的例子效果如图:

相关文章

  • ES6中解构赋值实现变量批量赋值解放双手

    ES6中解构赋值实现变量批量赋值解放双手

    这篇文章主要为大家介绍了ES6中解构赋值实现变量批量赋值解放双手,变量的解构赋值,听起来很复杂,简单点说可以理解成批量操作变量赋值
    2022-04-04
  • JavaScript中的事件循环机制及其运行原理

    JavaScript中的事件循环机制及其运行原理

    JavaScript中的事件循环机制是一种异步处理机制,通过维护事件队列和消息队列,实现任务的分发和执行。事件循环机制由主线程和任务队列构成,主线程运行完当前任务后会检查任务队列中是否有待执行的任务,如有则执行,否则等待
    2023-04-04
  • 如何在TypeScript使用模块化以及注意事项详解

    如何在TypeScript使用模块化以及注意事项详解

    在TypeScript中就像在EC5中一样,任何包含顶级import或export的文件都被认为是一个模块,下面这篇文章主要给大家介绍了关于如何在TypeScript使用模块化以及注意事项的相关资料,需要的朋友可以参考下
    2022-10-10
  • express+mockjs实现模拟后台数据发送功能

    express+mockjs实现模拟后台数据发送功能

    这篇文章主要介绍了express+mockjs实现模拟后台数据发送功能,需要的朋友可以参考下
    2018-01-01
  • 鸿蒙系统中的 JS 开发框架

    鸿蒙系统中的 JS 开发框架

    最近华为鸿蒙OS 2.0正式开源!关于鸿蒙的教程其实网上也已经有一些尝鲜的小伙伴分享了相关文章,这篇文章主要为大家详细介绍了鸿蒙系统中的 JS 开发框架,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • JS使用Prim算法和Kruskal算法实现最小生成树

    JS使用Prim算法和Kruskal算法实现最小生成树

    这篇文章主要为大家详细介绍了JS使用Prim算法和Kruskal算法实现最小生成树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 解析为什么axios会有params和data两个参数

    解析为什么axios会有params和data两个参数

    本文给大家分享为什么axios会有params和data两个参数,先来回顾一下axios的基本使用,怎么发送一个请求,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • easyui window refresh 刷新两次的解决方法(推荐)

    easyui window refresh 刷新两次的解决方法(推荐)

    下面小编就为大家带来一篇easyui window refresh 刷新两次的解决方法(推荐)。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • 详解js中构造流程图的核心技术JsPlumb(2)

    详解js中构造流程图的核心技术JsPlumb(2)

    这篇文章主要介绍了js中构造流程图的核心技术JsPlumb,jsPlumb是一个强大的JavaScript连线库,它可以将html中的元素用箭头、曲线、直线等连接起来,适用于开发Web上的图表、建模工具等,需要的朋友可以参考下
    2015-12-12
  • Bootstrap基本组件学习笔记之分页(12)

    Bootstrap基本组件学习笔记之分页(12)

    这篇文章主要为大家详细介绍了Bootstrap基本组件学习笔记之分页,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论