jquery复选框全选

时间:2013-11-01 17:59:05

标签: jquery select checkbox

我已经设置了jquery以找到我的全选复选框,但由于某种原因它只在第二次点击时选择全部。

非常感谢任何想法。

    $("h2 #selectAllState").click(function () {

  var here = $(this).closest("div").attr('id');
  var stateDiv = "#"+here;
  var cityList = "#state"+here;


$(stateDiv+" h2 input:checkbox").change(function () {
        $(cityList).find(':checkbox').prop("checked", this.checked);
    });

});

或者是jfiddle

1 个答案:

答案 0 :(得分:6)

您的原始问题是,在第一次点击发生之前,您没有绑定change处理程序。我已经解决了这个问题,并设法使用遍历函数来简化代码。

http://jsfiddle.net/w8ZLV/

$("#selectAllState").click(function () {    
    $(this).closest('div').find('.cityPick :checkbox').prop("checked", this.checked);
});

此外,看起来您可能正在为其他状态重复此块,在这种情况下,您可能有多个ID为#selectAllState的元素,这是不允许的。如果我的假设是正确的,那应该改为一个类而不是一个id。