0

我正在编写以下 jquery 代码来选择/取消选择复选框。使用 jquery 1.7.2 版可以正常工作,但升级到 jquery 2.0 时失败。*

代码:

$("#selectall").click(function () {
   $('.case').attr('checked', this.checked);
});

// 如果所有复选框都被选中,则选中全选复选框

$(".case").click(function(){
   if($(".case").length == $(".case:checked").length) {
      $("#selectall").attr("checked", "checked");
   } else {
      $("#selectall").removeAttr("checked");
   }
});

我也使用了这种方法,但它也失败了。

$('#selectall').click(function() {
    $('.case').each(function() {
        $(this).attr('checked',!$(this).attr('checked'));
    });
});

示例 html 输出

<input type="checkbox" id="selectall"> select all
.....
<input type="checkbox" class="case" value="1">
...
...
<input type="checkbox" class="case" value="5">

请注意,在选中/取消选中全选复选框时,以下代码在第二次尝试时失败。

4

2 回答 2

3

使用Jquery.prop()而不是Jquery.attr()

于 2013-08-21T20:11:48.953 回答
0

尝试做这样的事情:

$("#selectall").on('click', function () {
   $('.case').prop('checked', $(this).prop('checked'));
});
于 2013-08-21T20:13:55.827 回答