利用JS實現HTML TABLE的分頁


  有時候table的列數太長,不利於使用者查詢,所以利用JS做了一個table的分頁,以下為相關代碼

  一、JS代碼

  1         <script type="text/javascript">
  2             var pageSize = 15;    //每頁顯示的記錄條數
  3              var curPage=0;        //當前頁
  4              var lastPage;        //最后頁
  5              var direct=0;        //方向
  6             var len;            //總行數
  7             var page;            //總頁數
  8             var begin;
  9             var end;
 10             
 11                 
 12             $(document).ready(function display(){   
 13                 len =$("#mytable tr").length - 1;    // 求這個表的總行數,剔除第一行介紹
 14                 page=len % pageSize==0 ? len/pageSize : Math.floor(len/pageSize)+1;//根據記錄條數,計算頁數
 15                 // alert("page==="+page);
 16                 curPage=1;    // 設置當前為第一頁
 17                 displayPage(1);//顯示第一頁
 18                 
 19                 document.getElementById("btn0").innerHTML="當前 " + curPage + "/" + page + " 頁    每頁 ";    // 顯示當前多少頁
 20                 document.getElementById("sjzl").innerHTML="數據總量 " + len + "";        // 顯示數據量
 21                 document.getElementById("pageSize").value = pageSize;
 22                 
 23                 
 24                 
 25                 $("#btn1").click(function firstPage(){    // 首頁
 26                     curPage=1;
 27                     direct = 0;
 28                     displayPage();
 29                 });
 30                 $("#btn2").click(function frontPage(){    // 上一頁
 31                     direct=-1;
 32                     displayPage();
 33                 });
 34                 $("#btn3").click(function nextPage(){    // 下一頁
 35                     direct=1;
 36                     displayPage();
 37                 });
 38                 $("#btn4").click(function lastPage(){    // 尾頁
 39                     curPage=page;
 40                     direct = 0;
 41                     displayPage();
 42                 });
 43                 $("#btn5").click(function changePage(){    // 轉頁
 44                     curPage=document.getElementById("changePage").value * 1;
 45                     if (!/^[1-9]\d*$/.test(curPage)) {
 46                         alert("請輸入正整數");
 47                         return ;
 48                     }
 49                     if (curPage > page) {
 50                         alert("超出數據頁面");
 51                         return ;
 52                     }
 53                     direct = 0;
 54                     displayPage();
 55                 });
 56                 
 57                 
 58                 $("#pageSizeSet").click(function setPageSize(){    // 設置每頁顯示多少條記錄
 59                     pageSize = document.getElementById("pageSize").value;    //每頁顯示的記錄條數
 60                     if (!/^[1-9]\d*$/.test(pageSize)) {
 61                         alert("請輸入正整數");
 62                         return ;
 63                     }
 64                     len =$("#mytable tr").length - 1;
 65                     page=len % pageSize==0 ? len/pageSize : Math.floor(len/pageSize)+1;//根據記錄條數,計算頁數
 66                     curPage=1;        //當前頁
 67                      direct=0;        //方向
 68                      firstPage();
 69                 });
 70             });
 71  
 72             function displayPage(){
 73                 if(curPage <=1 && direct==-1){
 74                     direct=0;
 75                     alert("已經是第一頁了");
 76                     return;
 77                 } else if (curPage >= page && direct==1) {
 78                     direct=0;
 79                     alert("已經是最后一頁了");
 80                     return ;
 81                 }
 82                 
 83                 lastPage = curPage;
 84                
 86                 // 修復當len=1時,curPage計算得0的bug
 87                 if (len > pageSize) {
 88                     curPage = ((curPage + direct + len) % len);
 89                 } else {
 90                     curPage = 1;
 91                 }
 92           
 93                 
 94                 document.getElementById("btn0").innerHTML="當前 " + curPage + "/" + page + " 頁    每頁 ";        // 顯示當前多少頁
 95                 
 96                 begin=(curPage-1)*pageSize + 1;// 起始記錄號
 97                 end = begin + 1*pageSize - 1;    // 末尾記錄號
 98              
 99                 
100                 if(end > len ) end=len;
101                 $("#mytable tr").hide();    // 首先,設置這行為隱藏
102                 $("#mytable tr").each(function(i){    // 然后,通過條件判斷決定本行是否恢復顯示
103                     if((i>=begin && i<=end) || i==0 )//顯示begin<=x<=end的記錄
104                         $(this).show();
105                 });
106 
107              }
108     </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代碼

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM