本文主要是介绍弹出窗全选反选功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
功能需求:弹出窗列表加载记录,分页选择记录项,得到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”同理。
这篇关于弹出窗全选反选功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!