js前端分页

第一种方法

/**
*分页函数
*@totalpage 总页数
*@currpage 当前页数
**/
function setNavPages(totalpage, curpage) {
    totalpage = Number(totalpage);
    curpage = Number(curpage);
    if (totalpage == 1 || totalpage == 0)
        return "";
    var html = "<ul class=\"pagination\">";
    if (curpage > 0) {
        html += "<li><a href=\"javascript:;\" aria-label=\"Previous\" data-rel=\"" + (curpage - 1) + "\"><span aria-hidden=\"true\">«</span></a></li>";
    } else {
        html += "<li class=\"disabled\"><span aria-hidden=\"true\">«</span></li>";
    }
    if (curpage > 4) {
        html += "<li><span>…</span></li>";
    }
    for (var i = curpage - 4; i < curpage + 5 && i < totalpage; i++) {
        if (i < 0)
            continue;
        var k = i + 1;
        if (i == curpage) {
            html += "<li class=\"active\"><a href=\"javascript:;\" data-rel=\"" + i + "\">" + k + "<span class=\"sr-only\">(current)</span></a></li>";
        } else {
            html += "<li><a href=\"javascript:;\" data-rel=\"" + i + "\">" + k + "</a></li>"
        }
    }
    if (totalpage > (curpage + 5)) {
        html += "<li><span class='pagebardot'>...</span></li>";
    }
    if (totalpage > (curpage + 5)) {
        html += "<li><a href=\"javascript:;\" data-rel=\"" + (totalpage - 1) + "\">" + totalpage + "</a></li>";
    }
    if (curpage < totalpage - 1) {
        html += "<li><a href=\"javascript:;\" aria-label=\"Next\" data-rel=\"" + (curpage + 1) + "\"><span aria-hidden=\"true\">»</span></a></li>";
    }
    html += "</ul>";
    return html;
}


调用

html代码

        <div id="navpage" style="text-align:center;"></div>


js代码

 $(function () { 
$("#navpage").on("click", "a", function (event, state) {
                page = $(this).attr("data-rel");
                showinfo(page);
            });
})
function showinfo(page){
var html = setNavPages(Math.ceil(data.length / 4), page);
                $("#navpage").html(html);
//调用数据略
}

第二种方法是采用url中传递参数的方法

/**
 * 分页
 * @totalpage 总页数
 * @curpage 当前页数
 * @url 当前网址
 */
function setNavPages(totalpage, curpage,url) {
    totalpage = Number(totalpage);
    curpage = Number(curpage);
    if (url.indexOf('?') > 0) {
        url = url + "&page=";
    } else {
        url = url + "?page=";
    }
    if (totalpage == 1 || totalpage == 0)
        return "";
    var html = "<ul class=\"pagination\">";
    if (curpage > 0) {
        html += "<li><a href='"+url+(curpage)+"' aria-label=\"Previous\" data-rel=\"" + (curpage - 1) + "\"><span aria-hidden=\"true\">«</span></a></li>";
    } else {
        html += "<li class=\"disabled\"><span aria-hidden=\"true\">«</span></li>";
    }
    if (curpage > 4) {
        html += "<li><span>…</span></li>";
    }
    for (var i = curpage - 4; i < curpage + 5 && i < totalpage; i++) {
        if (i < 0)
            continue;
        var k = i + 1;
        if (i == curpage) {
            html += "<li class=\"active\"><a href='"+url+k+"' data-rel=\"" + i + "\">" + k + "<span class=\"sr-only\">(current)</span></a></li>";
        } else {
            html += "<li><a href='" + url + k + "' data-rel=\"" + i + "\">" + k + "</a></li>"
        }
    }
    if (totalpage > (curpage + 5)) {
        html += "<li><span class='pagebardot'>...</span></li>";
    }
    if (totalpage > (curpage + 5)) {
        html += "<li><a href='" + url + (totalpage) + "' data-rel=\"" + (totalpage - 1) + "\">" + totalpage + "</a></li>";
    }
    if (curpage < totalpage - 1) {
        html += "<li><a href='" + url + (curpage) + "' aria-label=\"Next\" data-rel=\"" + (curpage + 1) + "\"><span aria-hidden=\"true\">»</span></a></li>";
    }
    html += "</ul>";
    return html;
}

调用

html代码

        <div id="navpage" style="text-align:center;"></div>


js代码

 $(function () { 
//data是传入的数据
var html = setNavPages(Math.ceil(data.length / 4), page);
                $("#navpage").html(html);
//调用数据略
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用JavaScript实现前端分页的完整代码示例: HTML部分: ```html <div id="dataContainer"></div> <div id="paginationContainer"></div> ``` JavaScript部分: ```javascript // 模拟一个包含所有数据的数组 var data = [ { id: 1, name: "数据1" }, { id: 2, name: "数据2" }, // 这里省略了一些数据... { id: 100, name: "数据100" } ]; var currentPage = 1; // 当前页码 var pageSize = 10; // 每页显示的数据条数 // 根据当前页码和每页显示的数据条数,获取对应的数据 function getDataByPage(page, size) { var startIndex = (page - 1) * size; // 计算起始索引 var endIndex = startIndex + size; // 计算结束索引 return data.slice(startIndex, endIndex); // 使用slice方法截取对应的数据 } // 更新页面上的数据显示 function updateData(data) { var container = document.getElementById("dataContainer"); container.innerHTML = ""; // 清空旧数据 // 遍历数据数组,创建相应的DOM元素并添加到容器中 data.forEach(function(item) { var div = document.createElement("div"); div.innerHTML = item.name; container.appendChild(div); }); } // 更新分页按钮 function updatePagination() { var totalPages = Math.ceil(data.length / pageSize); // 总页数 var container = document.getElementById("paginationContainer"); container.innerHTML = ""; // 清空旧按钮 // 遍历总页数,创建相应的DOM元素并添加到容器中 for (var i = 1; i <= totalPages; i++) { var button = document.createElement("button"); button.innerHTML = i; button.onclick = function() { currentPage = parseInt(this.innerHTML); // 更新当前页码 var currentPageData = getDataByPage(currentPage, pageSize); updateData(currentPageData); // 更新数据显示 }; container.appendChild(button); } } // 初始化页面 function init() { var currentPageData = getDataByPage(currentPage, pageSize); updateData(currentPageData); updatePagination(); } init(); // 调用初始化函数 ``` 以上代码实现了一个简单的前端分页功能,核心思路就是根据当前页码和每页显示的数据条数,截取相应的数据进行显示,并根据总数据量动态生成分页按钮。点击分页按钮时,更新当前页码并重新获取相应的数据进行显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值