jquery:实现全选和取消全选

jquery:用jquery实现全选和取消全选

1、目前我遇到的最简单的一种方法,如果有更好的方法,大家可以分享一下

<input type="checkbox" id="all" />全选<br />  
<input type="checkbox" name="sub" />image1.jpg<br />  
<input type="checkbox" name="sub"/>image2.jpg<br />  
<input type="checkbox" name="sub"/>image3.jpg<br />  
<input type="checkbox" name="sub"/>image4.jpg<br />  
<script type="text/javascript">
      $(function() {  
        $('#all').on('click',function(){
            if(this.checked) {
                $("input[name='sub']").attr('checked',true);
            }else {
                $("input[name='sub']").attr('checked',false);
            }
        });
     });  
</script>
用这个方法,在实现全选和取消全选中遇到了一个问题(这个问题出现在用jquery等动态添加内容时,点击全选后,再次点击取消全选,再次点击全选就不管用了,代码是这样的:

$("#left").append(
    "<span>" + "全选" + "</span>" + "<input type=\"checkbox\" name=\"all\"  id=\"all\">");
$.each(json.filelist,function(i, item) {
     $("#left").append(
         "<span>" + item.name + "</span>" + "<input type=\"checkbox\" name=\"sub\">" + "</br>"); });

在这种情况下,我又找到另外一种方法:

$("#all").on('click',function() {  
      $("input[name='sub']").prop("checked", this.checked);  
});  
    
$("input[name='sub']").on('click',function() {  
      var $subs = $("input[name='sub']");  
      $("#all").prop("checked" , $subs.length == $subs.filter(":checked").length ? true :false);  
}); 
推荐大家使用on绑定点击事件,因为on事件也适用于动态加载的元素





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值