Jquery 我的checkAll复选框脚本不工作

Jquery 我的checkAll复选框脚本不工作,jquery,Jquery,我使用jquery 1.6.1检查所有一组复选框。 这是我的HTML代码: <form action=""> <div class="stats"> <h2 class="title">Reason for Celebrity</h2> <input name="reason" type="checkbox" value="net" />Famous on the internet<br/>

我使用jquery 1.6.1检查所有一组复选框。
这是我的HTML代码:

 <form action="">
    <div class="stats">
      <h2 class="title">Reason for Celebrity</h2>
      <input name="reason" type="checkbox" value="net" />Famous on the internet<br/>
      <input name="reason" type="checkbox" value="crim" />Committed a crime<br />
      <input name="reason" type="checkbox" value="model" />Dates a super model<br />
      <input name="reason" type="checkbox" value="tv" />Hosts a TV show<br />
      <input name="reason" type="checkbox" value="japan" />Big in Japan<br />
      <hr />
      <input class="check-all" name="reason" type="checkbox" /><span>Check all</span>
      <br/>
      <input type="submit" value="Submit" class="submit" />
    </div>
  </form>
但这不适用于取消选中复选框。你能帮我解决这个问题吗?

试着更换

$(group).attr('checked', $(this).attr('checked'));

$(this.attr('checked')
-返回未定义的

您应该这样做:

var variable = (undefined == $(this).attr('checked'))?false:$(this).attr('checked');
$(group).attr('checked', variable);

为了避免未定义的值,问题是您没有明确添加任何选项以取消选中复选框。 一个正确的方法是

$(document).ready(function(){
   $('.check-all:checkbox').change(function(event) {
    var group = ':checkbox[name=' + $(this).attr('name') + ']';
      $(group).each(function(){
      this.checked = event.target.checked;
      });
  });
});
工作小提琴:


谢谢。但是为什么$(this).attr('checked')在取消选中check all checkbox中返回false,因为据我所知,可能的值是true、false和'checked'。true和“checked”具有相同的含义。
var variable = (undefined == $(this).attr('checked'))?false:$(this).attr('checked');
$(group).attr('checked', variable);
$(document).ready(function(){
   $('.check-all:checkbox').change(function(event) {
    var group = ':checkbox[name=' + $(this).attr('name') + ']';
      $(group).each(function(){
      this.checked = event.target.checked;
      });
  });
});