最近来到新的项目组,第一任务就是要做一个分页的功能。主要用的是前台用户进行条件搜索,然后后台代理根据提交的条件处理数据,处理过程中将所有的数据放到一个变量a中,而且每10个数据后面加一个空格符(为了前台分割),再将变量print到前台。
前台获得数据(一定要在页面加载前或者加载时,不要在onload里写),放到一个div里,然后将数据放到一个数组divstrs中,并然后分割,具体代码如下。
document.getElementById("存放数据的div").innerHTML = XmlResponse; //后台print的数据
var obj = document.getElementById("存放数据的div"); //获取存在的数据
divstrs=obj.innerHTML.split(" "); //根据分隔符将数据分割成数组
有了divstrs这个数组,就可以进行分页了,divstrs.length就是分页的页数,同样下标+1便是当前页了。
完成了之前的数据准备工作下面就可以进行真正的js分页了,具体代码如下。
<script language="JavaScript">
<!--
function showPages(name) { //初始化属性
this.name = name; //对象名称
this.page = 1; //当前页数
this.pageCount = 1; //总页数
this.argName = 'page'; //参数名
this.showTimes = 1; //打印次数
}
showPages.prototype.getPage = function(){ //丛url获得当前页数,如果变量重复只获取最后一个
var args = location.search;
var reg = new RegExp('[\?&]?' + this.argName + '=([^&]*)[&$]?', 'gi');
var chk = args.match(reg);
this.page = RegExp.$1;
}
showPages.prototype.checkPages = function(){ //进行当前页数和总页数的验证
if (isNaN(parseInt(this.page))) this.page = 1;
if (isNaN(parseInt(this.pageCount))) this.pageCount = 1;
if (this.page < 1) this.page = 1;
if (this.pageCount < 1) this.pageCount = 1;
if (this.page > this.pageCount) this.page = this.pageCount;
this.page = parseInt(this.page);
this.pageCount = parseInt(this.pageCount);
}
showPages.prototype.createHtml = function(mode){ //生成html代码
var strHtml = '', prevPage = this.page - 1, nextPage = this.page + 1;
if (mode == '' || typeof(mode) == 'undefined') mode = 0;
strHtml += '<span class="count" id="count" style=display:none>当前页面: ' + this.page + ' / ' + this.pageCount + '</span>';
strHtml += '<span class="number">';
if (prevPage < 1) {