纯js手动分页

Posted 哎哟喂勒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了纯js手动分页相关的知识,希望对你有一定的参考价值。

昨天让做个页面,后台提供所有数据,没有做好分页,需要前端js手动分页。

我参考了 http://www.cnblogs.com/jiechn/p/4095029.html

做了些许改动让分页效果更加完善。

最终效果图

js代码

/**
 * 分页函数
 * pno--页数
 * psize--每页显示记录数
 * 分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数
 * 纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能
 **/
function goPage(pno){
    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>";


//.bind("click",{"newPage":pageIndex},function(event){
//        goPage((pageIndex-1)*pageSize+1,(pageIndex-1)*pageSize+pageSize);
//    }).appendTo(\'#pages\');
    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 onclick=\\"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" name="barcon"></div>

js在需要触发生成分页效果处插入代码

goPage(pageNum); //pageNum 为你要跳转的页码

 

以上是关于纯js手动分页的主要内容,如果未能解决你的问题,请参考以下文章

纯js实现分页

使用纯js写的一个分页

kPagination纯js实现分页插件

jQuery+AJAX实现纯js分页功能

JS 分页

网站前端_JavaScript-项目经验.纯JavaScript实现客户端的分页功能?