這邊跟大家分享簡單的分頁效果,大家可以把它改得更完美。
這邊只是簡單的例子,這邊我的註解相當詳細了,所以不多做說明。
table id 跟 分頁區塊id記得要調整喔
<script>
goPage(1,10);
function goPage(pno, psize) {
var itable = document.getElementById("table_result");//用ID找到表格
var num = itable.rows.length;//記錄表格總數
var totalPage = 0;//總共幾頁
var pageSize = psize;//一頁顯示幾行
//以下是總共會有幾個分頁
if (num / pageSize > parseInt(num / pageSize)) { //paresInt是去小數點
totalPage = parseInt(num / pageSize) + 1; //有剩就要多一頁
} else {
totalPage = parseInt(num / pageSize); //整除就不用多一頁
}
var currentPage = pno;//當前第幾頁
var startRow = (currentPage - 1) * pageSize + 1;//顯示行數 1 11 21
var endRow = currentPage * pageSize;//結束的行數 10 20 30
endRow = (endRow > num) ? num : endRow;
//如果超過總行數,就顯示到行數,沒有就繼續顯示endRow
for (var i = 1; i < (num + 1); i++)
{
var irow = itable.rows[i - 1];
if (i >= startRow && i <= endRow) {
irow.style.display = "block"; //將 display 均設為 block,所以成為區塊的呈現方式,強迫換行。
} else {
irow.style.display = "none"; //沒了就display就不要顯示
}
}
var tempStr = ""; //存上一頁 1 2 3 4 5 下一頁
var innital = currentPage; //下面的頁面 [1] 2 3 4 5
var after = currentPage+4 ; // 1 2 3 4 [5] 顯示到共五頁
if ( totalPage <= 4 )
{
innital = 1 //如果頁面不到五頁,強迫從1開始數
}
else if (innital+4 >= totalPage)
{
innital = totalPage-4 // 不要讓初始頁面爆表 若只有7頁 選到[5] innital 一樣是[3] 4 5 6 7
}
if (after >= totalPage)
{
after = totalPage //若 after超過總頁數一定只能讓他在總頁數 若只有7頁 選到[5] after 一樣是3 4 5 6 [7]
}
if (currentPage > 1) { //不是第一頁了,上一頁有連結 ,連結#是因為不用跳轉頁面,沒有導向任何網站,只是讓他可以按觸發onClick()方法
tempStr += "<a href=\"#\" onClick=\"goPage(" + (currentPage - 1) + "," + psize + ")\"><上一頁 </a>"
for (var j = innital; j <= after; j++) { //跑innital ~ after的頁面 j =當前頁面 psize顯示行數
tempStr += "<a href=\"#\" onClick=\"goPage(" + j + "," + psize + ")\">" + j + " </a>"
}
} else { //第一頁,所以上一頁沒有連結
tempStr += "<上一頁 ";
for (var j = innital; j <= after; j++) { //跑innital ~ after的頁面 j =當前頁面 psize顯示行數
tempStr += "<a href=\"#\" onClick=\"goPage(" + j + "," + psize + ")\">" + j + " </a>"
}
}
if (currentPage < totalPage) { //還沒到最後一頁,所以下一頁還有效果
tempStr += "<a href=\"#\" onClick=\"goPage(" + (currentPage + 1) + "," + psize + ")\">下一頁> </a>";
} else { //到最後一頁了,下一頁無效化
tempStr += " 下一頁> ";
}
document.getElementById("barcon").innerHTML = tempStr;
}
//@copyright MRcoding筆記
</script>
以下為範例:
HTML Table
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
@copyright MRcodingRoom
觀看更多文章請點MRcoding筆記
觀看更多文章請點MRcoding筆記