jquery复选框应用

您做喜欢的运动是什么呢? 足球 跑步 篮球 游泳

html页面如下:

* 全选:

(“#checkAll”).click(function(event){  
               console.log(event.target);  
               $(“input[name=’items’]”).attr(“checked”,true);  
 });  
在项目中遇到过这种情况:使用以上代码实现全选功能,第一次的时候可以实现全选功能,但是后面就失效了我用火狐浏览器调试了一下,操作的复选框已经有了check属性但是页面并未显示出来。然后上网查了一下是因为对于不同版本的jQuery,attr()和prop()是有细小的区别的。jQuery1.6之前的版本attr()在取某些值时返回的是property的值,这样就造成了返回结果不一致。从jQuery1.6开始prop()方法返回property的值而attr()方法返回atributes的值。  
因此我们最好使用:
(“#checkAll”).click(function(){
$(“input[name=items]”).prop(“checked”,true);
});

* 全不选:

(“#checkNo”).click(function(){(“input[name=’items’]”).prop(“checked”,false);
//或者使用$(“input[name=’items’]”).attr(“checked”,false);
});

* 反选:(反选说的就是如果你选中了,那么我就要给你没选中。如果你没选中,我就要选中。)

那么我们肯定就要遍历复选框去检验那个复选框是不是选中状态然后再更改其状态。
(“#checkRev”).click(function(){(“input[name=’items’]”).each(function(){
this.checked = ! this.checked;
});
});

如果不用按钮来控制全选等操作,而是用复选框,那效果又不一样了,如下所示:
(“#checkAll”).click(function(){  
               if(this.checked){
(“input[name=’items’]”).prop(“checked”,true);
}else{
$(“input[name=’items’]”).attr(“checked”,false);
}
});
当然我们可以简化为:

* 还有一种需求就是说当我们全部选中之后,所有选项都处于选中状态,而我们现在只是取消某一个复选框的选中状态,那么需要我们的全选按钮也应该处于不选中状态。

思路:首先要给复选框组绑定一个事件,此事件中定义一个变量flag为true,检查复选框组中是否有不处于选中状态的时候,就让flag设置为false,此时我们根据flag的值来判断是否需要将复选框的选中状态。
(“input[name=’items’]”).click(function(){  
               var flag = true;
(“input[name=’items’]”).each(function(){
if(!this.checked){
flag = false;
}
});
console.log(flag);
$(“#checkAll”).prop(“checked”,flag);
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值