//思路:拿到整个json数据,把整个json切割成若干个数组,如:切割成如下的每页显示5条数据的数组,那么总共61条数据就会被切割成13个数组,所以在做分页的时候第一个数组就对应渲染的第一页。
var page = function (pageSize,total, pageNum) {
var pageSize = pageSize;//每页数据条数
var pageTotal = Math.ceil(total / pageSize);//总共多少页
var pageNum = pageNum - 1 || 0;//页码pageNum-1是因为pageNum初始值一般为1
function cutArry() {//数组切割
let arr = [];
for (let i = 0; i < pageTotal; i++) {
let len = pageSize;
let strat = i * len;
let end = strat + len;
arr.push(data.slice(strat, end));
}
return arr;
}
function renderPage() {
let html = '';
cutArry().map(function (item, index) {
html += `<li>${index + 1}</li>`
})
$('.page').html(html)
for (let i = 10; i < pageTotal; i++) {
$(`.page li:eq(${i})`).hide()//分页大于10页的页码就隐藏
}
if (cutArry().length > 1) {
$('.page li:eq(0)').before('<span class="upPage">上一页</span>');
$('.page li:last').after('<span class="nextPage">下一页</span>');
}
if ($('.page li').length > 10) {
$('.page .nextPage').before(`<span class="pagePre" style="margin-right: 5px">...</span>`)
}
}
renderPage()
//渲染数组数据,默认渲染第一个数组
function tableData(pageNum) {
let tbody = '';
let data = cutArry()[pageNum]
for (let j = 0; j < data.length; j++) {
tbody += `<tr>
<td>${cutArry(www.michenggw.com)[pageNum][j].isSuccess}</td>
<td>${cutArry(www.chaoyueyule.cn)[pageNum][j].chargeMoney}</td>
<td>${cutArry()[pageNum][j].createTime}</td>
<td>${cutArry()[pageNum][j].commodityName}</td>
</tr>`
}
$('tbody').html(tbody)
$('.num').remove(www.dasheng178.com);
$('.nextPage').after(`<span class="num" style="margin-left: 10px;">第${pageNum+1}页</span>`);
console.log(pageNum+1)
}
tableData(pageNum)
//点击页码或上一页和下一页
function pagenation(yongshiyule178.com) {
let len = $('ul li').length;
let li = $('.page').find('li');
li.map(function () {
$(this).on('click', function () {
let page = $(this)www.xianggelila2.com.text();
pageNum = page - 1;//把当前点击的页码赋值给pageNum,这样再点击下一页或上一页的时候就在当前页码上--或++,获取到1的时候其实需要展示数组第0个数据
tableData(pageNum)
})
})
$('body'www.xiaomiyulezc.com ).on('click', '.nextPage', function () {//下一页
if(pageNum +1 < pageTotal){
pageNum++;
}else{
return
}
// console.log(pageNum+1)
if (pageNum +1 == pageTotal) {
pageNum = pageTotal -1;
$('.pagePre').hide()
}
if (pageNum + 1 > 10) {//当页码大于10的时候就取消隐藏,注意:pageNum是数组下标所以要包括10
$(`.page li:eq(${pageNum})`).show();
$(`.page li:eq(${pageNum - 10})`).hide();
$('.forntPagePre').remove()
$('.page li:eq(0)').before(`<span class="forntPagePre" style="margin-left: 5px;">...</span>`)
}
tableData(pageNum)
})
$('body').on('click', '.upPage', function () {//上一页
if (pageNum == 0) {//当pageNum等于12的时候阻止事件执行
pageNum = 0
return
}
pageNum--;
if(pageTotal - (pageNum+1) >= 10){//总页数减去当前页数大于等于10的时候
// console.log(pageNum + 1)
$(`.page li:eq(${pageNum})`).show();
$(`.page li:eq(${pageNum+10})`).hide();
$('.pagePre').remove();
$('.page .nextPage').before(`<span class="pagePre" style="margin-right: 5px;">...</span>`);
}
if(pageNum + 1 == 1){
$('.forntPagePre').hide();
}
tableData(pageNum)
})
}
pagenation()
}
page(5, 61, 1)
---------------------
转载于:https://www.cnblogs.com/qwangxiao/p/10213778.html