jQuery 全选 全不选 事件绑定的实现代码

废话不多说了,直接给大家贴代码了,具体代码如下所示:

<td width="82%" colspan="3">

<input type="checkbox" id="all">全选&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="checkbox" id="reverse">反选

</td>

<td width="82%" colspan="3">

<s:checkboxlist name="resUuids" list="resList" listKey="uuid" listValue="name"></s:checkboxlist>

</td>

$(function(){

//全选

$("#all").click(function(){

//将下面所有组件全部选中

//$("[name=resUuids]") 是多个组件,整体是个对象数组

//$("[name=resUuids]").attr("checked","checked");

//先获取当前组件的状态

//$(this).attr("checked")

//将所有组件设置为对应状态

//$("[name=resUuids]").attr("checked",$(this).attr("checked"));

//$(this).attr("checked")获取的值究竟是什么

//alert($(this).attr("checked")); //undefined

//$("[name=resUuids]").attr("checked","undefined");

//js语法规则,除了false,FALSE,"false","FALSE",0五个值之外的所有值,认定为true

//$("[name=resUuids]").attr("checked",false);

var flag = $(this).attr("checked");

$("[name=resUuids]").attr("checked",flag == "checked");

});

//反选

$("#reverse").click(function(){

//将所有组件的状态切换成原始状态的反状态

//$("[name=resUuids]").attr("checked",!($("[name=resUuids]").attr("checked")=="checked"));

//当选择器选中的组件是多个时,获取组件的任何数据都是对第一个组件进行操作

//alert(!($("[name=resUuids]").attr("checked")=="checked"));

//对每个组件进行迭代,让其操作状态为对应组件的原始状态的反状态

$("[name=resUuids]").each(function(){

//使用each操作实现对每个组件的操作

var flag = $(this).attr("checked");

$(this).attr("checked", !(flag =="checked"));

});

checkSelect();

});

//绑定组件

$("[name=resUuids]").click(function(){

//将全选的状态设置为基于所有组件的综合状态值

checkSelect();

});

function checkSelect(){

var allFlag = true;

$("[name=resUuids]").each(function(){

var flag = $(this).attr("checked") == "checked";

//&:位运算与 &&:逻辑与

allFlag = allFlag && flag;

});

$("#all").attr("checked",allFlag);

}

});

以上所述是小编给大家介绍的jQuery 全选 全不选 事件绑定的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 jQuery 全选 全不选 事件绑定的实现代码 的全部内容, 来源链接: utcz.com/z/319979.html

回到顶部