原理:所有數據已加載好,js通過遍歷部分顯示,實現分頁效果
js代碼
/**
* 分頁函數
* pno--頁數
* psize--每頁顯示記錄數
* 分頁部分是從真實數據行開始,因而存在加減某個常數,以確定真正的記錄數
* 純js分頁實質是數據行全部加載,通過是否顯示屬性完成分頁功能
**/
function goPage(pno){
//idData是表格body的id
var itable = document.getElementById("idData");
var num = itable.rows.length;//表格所有行數(所有記錄數)
console.log(num);
var totalPage = 0;//總頁數
var pageSize = 15;//每頁顯示行數
//總共分幾頁
if(num/pageSize > parseInt(num/pageSize)){
totalPage=parseInt(num/pageSize)+1;
}else{
totalPage=parseInt(num/pageSize);
}
var currentPage = pno;//當前頁數
var startRow = (currentPage - 1) * pageSize+1;//開始顯示的行 31
var endRow = currentPage * pageSize;//結束顯示的行 40
endRow = (endRow > num)? num : endRow; //40
console.log(endRow);
//遍歷顯示數據實現分頁
for(var i=1;i<(num+1);i++){
var irow = itable.rows[i-1];
if(i>=startRow && i<=endRow){
irow.style.display = "table-row";
}else{
irow.style.display = "none";
}
}
var pageEnd = document.getElementById("pageEnd");
var tempStr = "<span>共"+totalPage+"頁</span>";
if(currentPage>1){
tempStr += "<span class='btn' href=\"#\" onClick=\"goPage("+(1)+")\">首頁</span>";
tempStr += "<span class='btn' href=\"#\" onClick=\"goPage("+(currentPage-1)+")\">上一頁</span>"
}else{
tempStr += "<span class='btn'>首頁</span>";
tempStr += "<span class='btn'>上一頁</span>";
}
for(var pageIndex= 1;pageIndex<totalPage+1;pageIndex++){
tempStr += "<a οnclick=\"goPage("+pageIndex+")\"><span>"+ pageIndex +"</span></a>";
}
if(currentPage<totalPage){
tempStr += "<span class='btn' href=\"#\" onClick=\"goPage("+(currentPage+1)+")\">下一頁</span>";
tempStr += "<span class='btn' href=\"#\" onClick=\"goPage("+(totalPage)+")\">尾頁</span>";
}else{
tempStr += "<span class='btn'>下一頁</span>";
tempStr += "<span class='btn'>尾頁</span>";
}
document.getElementById("barcon").innerHTML = tempStr;
}
使用方式
html在需要添加分頁處插入代碼
<div id="barcon"></div>
js在需要觸發生成分頁效果處插入代碼
goPage(pageNum); //pageNum 爲你要跳轉的頁碼