堆栈溢出
这个问题在这里已经有了答案:
  你使用错误的方法,你应该使用prop 
$(document).ready(function() {
    $('#CHECK-ALL').click(function() {
        if ($(this).is(':checked')) {
            $('#P').prop('checked',true);                
        } else {
            $('#P').prop('checked',false);                
        }
    });
});
你的代码可以减少到
$('#CHECK-ALL').click(function() {
    $('#P').prop('checked', this.checked);                
});
  设置属性时,它可以正常工作,但不会更改属性,因此下次您检查$(this).is(':checked')它仍然未选中,因为它会检查属性,而不会检查属性,这就是为什么它不起作用。 
上一篇: Stack Overflow
下一篇: How to remove checked attr on a checkbox when I click it again
