利用js製作html table分頁樣本(js實現分頁)

來源:互聯網
上載者:User

有時候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代碼

最後得到的例子效果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.