墨色风雨
好久之前,参考论坛分页后端模板输出逻辑弄过一个. function makePage (total, page) {//生成页码 var pages = []; function createPage(index){//单页码生成 if(page==index){ pages.push('' + page + ''); }else{ pages.push('' + index + ''); } } if(total<=10){ for(var i=1;i<=total;i++){ createPage(i); } }else{ if(page <= 5) {//总页数大于10且当前页远离总页数(小于5) for(var i = 1; i <=5; i++) { createPage(i); } pages.push(' … ' + total + ''); }else if(page>=total-3){//总页数大于10且当前页接近总页数(小于总页数-3) pages.push('' + 1 + ' …'); for(var i=total-4;i<=total;i++){ createPage(i); } }else{ //除开上面两个情况 pages.push('' + 1 + ' … '); for(var i=page-2;i<=page+2;i++){ createPage(i); } pages.push(' … ' + total + ''); } } if (page > 1 && total > 1) {// 上一页 pages.unshift('上页'); } else { pages.unshift('上页'); } if (page < total && total > 1) {// 下一页 pages.push('下页'); } else { pages.push('下页'); } contentDom.html(tpl.replace("{pages}", pages.join(" "))); }截取部分代码, 这个是生成当前页的总页数,规则是当页码不超过10的时候,全部显示,当大于10页时,根据当前页做处理。如果当前页小于5, 则显示 前面五个页码+省略号+最后一页。如果当前页是接近最后几页的,输出 首页码+省略号+后面几页(包括当前页)剩下的情况,输出首页+省略号+中间几页(包含当前页)+省略号+最后一页。好像挺复杂的= =,没整理过。参考下~