js得到分页栏
自己写的,感觉返回html代码蠢蠢的,但是新手并不知道怎么写更好的,感觉这样子也蛮简单。记录下来,以后来越改越好。
//获得分页栏。注意indexSize为奇数,这样也比较好看 //totalNum:数据库总记录数,pageSize:每页显示的记录数,indexSize:要显示几个页码,比如下边显示 1 2 3 4 5 indexSize就=5, page:当前页码 function getPageIndex(totalNum, pageSize, indexSize, page) { var pageIndex = ""; //如果总记录数大于页码显示数量才进行计算 if (totalNum > pageSize) { var totalPage = 0; if (totalNum % pageSize == 0) { totalPage = totalNum / pageSize; } else { totalPage = Math.floor(totalNum / pageSize) + 1; } //情况1 总页数<页码数 if (totalPage < indexSize) { for (var i = 1; i <= totalPage; i++) { pageIndex += "<li"; if (i == page) { pageIndex += " class='active'"; } pageIndex += ">"; pageIndex += "<a>" + i + "</a>"; pageIndex += "</li>"; } } //情况2 总页数>页码数 并且 当前页数位于最后后半段 如 25 26 27 28 29的28页 else if (totalPage > indexSize && totalPage - page <= ((indexSize - 1) / 2)) { for (var i = totalPage - indexSize + 1; i <= totalPage; i++) { pageIndex += "<li"; if (i == page) { pageIndex += " class='active'"; } pageIndex += ">"; pageIndex += "<a>" + i + "</a>"; pageIndex += "</li>\n"; } } //情况3 总页数>页码数 并且 当前页数位于最前前半段 如 1 2 3 4 5的2页 else if (totalPage > indexSize && page <= ((indexSize + 1) / 2)) { for (var i = 1; i <= indexSize; i++) { pageIndex += "<li"; if (i == page) { pageIndex += " class='active'"; } pageIndex += ">"; pageIndex += "<a>" + i + "</a>"; pageIndex += "</li>\n"; } } //正常情况 else { for (var i = parseInt(page) - Math.floor(indexSize / 2); i <= parseInt(page) + Math.floor(indexSize / 2); i++) { pageIndex += "<li"; if (i == page) { pageIndex += " class='active'"; } pageIndex += ">"; pageIndex += "<a>" + i + "</a>"; pageIndex += "</li>\n"; } } //上一页 下一页 if (page == 1) { pageIndex = "<li class='disabled'><a>上一页</a></li>" + pageIndex + "<li><a>下一页</a></li>"; } else if (page == totalPage) { pageIndex = "<li><a>上一页</a></li>" + pageIndex + "<li class='disabled'><a>下一页</a></li>"; } else { pageIndex = "<li><a>上一页</a></li>" + pageIndex + "<li><a>下一页</a></li>"; } } return pageIndex; }