Javascript实现的分页函数

2019-04-04 07:59:08来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

公司开启新的项目的时候,有时候会让程序员制作很多网站分页,这种效果实现起来其实是比较麻烦的,下述文章是爱站技术频道小编和大家分享的Javascript实现的分页函数。

/**
?*?分页类构造
?*?参数?nTotalList:?总条数
?*?参数?nPageSize:?每页显示条数
?*?参数?nPageNum:?当前页码
?*?参数?sPageUrl:?分页链接的URL,页码以[pn]代替,输出时将被替换为实际页码
?*?参数?nPageListSize:?页码列表(下拉框)中显示的最多页码条数。该参数可省略,默认100
?*/
function?Pagination(nTotalList,?nPageSize,?nPageNum,?sPageUrl,?nPageListSize)?{
??this.totalList?=?nTotalList;
??this.pageSize?=?nPageSize;
??this.pageNum?=?nPageNum;
??if?(nTotalList?==?0)
????this.totalPages?=?1;
??else
????this.totalPages?=?Math.floor((this.totalList-1)/this.pageSize?+?1);
??this.pageUrl?=?sPageUrl;
??if?(arguments[4])
????this.pageListSize?=?nPageListSize;
??else
????this.pageListSize?=?100;
}

/**
?*?生成分页,将HTML直接输出
?*?无参数
?*?无返回值
?*/
Pagination.prototype.generate?=?function()?{
??var?output?=?"";
??output?+=?"<table?width=\"98%\"?cellspacing=\"1\"?cellpadding=\"3\"?align=\"center\"><tr><td?align=\"right\">";
??output?+=?"共?"?+?this.totalList?+?"?条?每页?"?+?this.pageSize?+?"?条?当前第?";
??output?+=?"<select?onchange=\"if(this.value)location.href='"?+?this.pageUrl?+?"'.replace(/\\[pn\\]/,";
??output?+=?"this.value);\"?align=\"absMiddle\"?style=\"font:normal?9px?Verdana,Arial,宋体;\">";
??var?firstPage?=?this.pageNum?-?Math.floor(this.pageListSize/2);
??if?(firstPage?<?1)
????firstPage?=?1;
??var?lastPage?=?firstPage?+?this.pageListSize?-?1;
??if?(lastPage?>?this.totalPages)?{
????lastPage?=?this.totalPages;
????firstPage?=?lastPage?-?this.pageListSize?+?1;
????if?(firstPage?<?1)
??????firstPage?=?1;
??}
??if?(firstPage?>?1)?{
????output?+=?"<option?value=\"1\">1</option>";
????if?(firstPage?>?2)
??????output?+=?"<option?value=\"\">…</option>";
??}
??for?(var?p?=?firstPage;?p?<=?lastPage;?p++)?{
????output?+=?"<option?value=\""?+?p?+?"\"";
????if?(p?==?this.pageNum)
??????output?+=?"?selected=\"yes\"";
????output?+=?">"?+?p?+?"</option>";
??}
??if?(lastPage?<?this.totalPages)?{
????if?(lastPage?<?this.totalPages?-?1)
??????output?+=?"<option?value=\"\">…</option>";
????output?+=?"<option?value=\""?+?this.totalPages?+?"\">"?+?this.totalPages?+?"</option>";
??}
??if?(this.pageNum?>?this.totalPages)
????output?+=?"<option?value=\"\"?selected=\"yes\">页码超出范围</option>";
??output?+=?"</select>";
??output?+=?"/"?+?this.totalPages?+?"?页?";
??if?(this.pageNum?==?1)?{
????output?+=?"[首页]?";
????output?+=?"[上页]?";
??}
??else?{
????output?+=?"<a?href=\""?+?this.pageUrl.replace(/\[pn\]/,?"1")?+?"\">[首页]</a>?";
????output?+=?"<a?href=\""?+?this.pageUrl.replace(/\[pn\]/,?this.pageNum-1)?+?"\">[上页]</a>?";
??}
??if?(this.pageNum?==?this.totalPages)?{
????output?+=?"[下页]?";
????output?+=?"[尾页]";
??}
??else?{
????output?+=?"<a?href=\""?+?this.pageUrl.replace(/\[pn\]/,?this.pageNum+1)?+?"\">[下页]</a>?";
????output?+=?"<a?href=\""?+?this.pageUrl.replace(/\[pn\]/,?this.totalPages)?+?"\">[尾页]</a>?";
??}
??output?+=?"</td></tr></table>";
??document.writeln(output);
}

上面是爱站技术频道小编整理的Javascript实现的分页函数,希望对你学习Javascript的知识有帮助,同时希望您可以继续支持爱站技术频道!


原文链接:https://js.aizhan.com/develop/JavaScript/5181.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Ajax到JQuery Ajax学习的几个步骤

下一篇:HTML页面调用ASP参数的方法