功能需求:弹出窗列表加载记录,分页选择记录项,得到id数组
实现:
1、首先在公共js(common.js)中添加两个方法
//===========================================
//判断是否在数组内
//===========================================
Array.prototype.contains = function (obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
return true;
}
}
return false;
};
//===========================================
//在数组的中的索引,没有则返回-1
//===========================================
Array.prototype.indexOf = function (e) {
for ( var i = 0, j; j = this[i]; i++) {
if (j == e) {
return i;
}
}
return -1;
};
2、全选、反选方法
var wbIdArray = null;//全局数组
//全选/反选
$("#all",window.parent.document.body).live("click",function(){
if (parent.$("#all").is(":checked")) {
parent.$("#wbTable").find("input[name=selectWb]").each(function(){
var self = $(this);
self.attr("checked",true);//选中
if (!wbIdArray.contains(self.attr("wbid"))) {
wbIdArray.push(self.attr("wbid"));//如果选中的id不在全局工种id数组中,则添加
}
});
}else {
parent.$("#wbTable").find("input[name=selectWb]").each(function(){
var self = $(this);
self.attr("checked",false);//取消选中
if(wbIdArray.contains(self.attr("wbid"))){
var index = wbIdArray.indexOf(self.attr("wbid"));
wbIdArray.splice(index,1);//如果取消选中的id在全局工种id数组中,则删除
}
});
}
});
注意:由于使用弹窗加载列表,在定位id为"all"时,要加上window.parent.document.body,让JQuery在父页面找id为all的html元素,id为“wbTable”同理。