如何使用JQuery切换所有复选框

如何使用JQuery切换所有复选框,jquery,Jquery,我有一个表,它的值是用PHP动态生成的。表中的每一行都有一个复选框。表中有一个标题列,它有一个“全部接受”按钮 当用户单击“全部接受”按钮时,将选中所有选择框。但是,我想添加一个类似切换的功能:如果没有选中任何框,则按下按钮选择全部;如果选中了所有框,则按下按钮将取消选中所有框 以下是我的全选JQuery代码: //Approves all $('#approve_all_questions').click(function () { $("INPUT[type='checkbox']"

我有一个表,它的值是用PHP动态生成的。表中的每一行都有一个复选框。表中有一个标题列,它有一个“全部接受”按钮

当用户单击“全部接受”按钮时,将选中所有选择框。但是,我想添加一个类似切换的功能:如果没有选中任何框,则按下按钮选择全部;如果选中了所有框,则按下按钮将取消选中所有框

以下是我的全选JQuery代码:

//Approves all
$('#approve_all_questions').click(function () {
    $("INPUT[type='checkbox']").attr('checked', true);
});
我很难让它正确切换。我试过这个:

//Toggle
$('#approve_all_questions').click(function () {

    if($("INPUT[type='checkbox']").attr('checked', true))
    {
        $("INPUT[type='checkbox']").attr('checked', false);
    }
    else
    {
        $("INPUT[type='checkbox']").attr('checked', true);
    }
  });
但这不起作用

TIA.

$(“输入[type='checkbox']).attr('checked',true)
checked
属性设置为
true
,并返回一个计算结果始终为
true
的jQuery对象

也许你想要

$("input[type='checkbox']").prop('checked', function(i, val) {
    return !val;
});
它反转每个复选框的
选中值

如果要同时选择或取消选择全部,可以执行以下操作:

var $boxes = $("input[type='checkbox']"),
    $unselected = $boxes.not(function(){ 
        return this.checked;
    });

// if there are any unselected boxes, it selects all, else it deselects all
$boxes.prop('checked', $unselected.length > 0);
$(“INPUT[type='checkbox'])。attr('checked',true)
checked
属性设置为
true
,并返回一个计算结果始终为
true
的jQuery对象

也许你想要

$("input[type='checkbox']").prop('checked', function(i, val) {
    return !val;
});
它反转每个复选框的
选中值

如果要同时选择或取消选择全部,可以执行以下操作:

var $boxes = $("input[type='checkbox']"),
    $unselected = $boxes.not(function(){ 
        return this.checked;
    });

// if there are any unselected boxes, it selects all, else it deselects all
$boxes.prop('checked', $unselected.length > 0);

只需要一个参数,第二个参数将checked设置为true并返回object(被认为是true)


只需要一个参数,第二个参数将checked设置为true并返回object(被认为是true)

下面是另一段代码,它是一个正在运行的演示:。
请注意使用
.live()
,如果要使用
,请单击()
,您必须将处理程序放入

$(文档).ready(函数(){
//这里的处理程序
});

下面是另一段代码,它是一个工作演示:。
请注意使用
.live()
,如果要使用
,请单击()
,您必须将处理程序放入

$(文档).ready(函数(){
//这里的处理程序
});

我更喜欢我的解决方案:

$(".selectAllCheckBox").live("click", function() {
    $("input[type='checkbox']").each(function() {
        if($(this).attr('checked')){
            $(this).attr('checked', false);
        } else {
            $(this).attr('checked', true);
        }
    });
});
)()

我更喜欢我的解决方案:

$(".selectAllCheckBox").live("click", function() {
    $("input[type='checkbox']").each(function() {
        if($(this).attr('checked')){
            $(this).attr('checked', false);
        } else {
            $(this).attr('checked', true);
        }
    });
});
)()