Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';无法清除Jquery中的所有复选框_Javascript_Jquery_Checkbox - Fatal编程技术网

Javascript Can';无法清除Jquery中的所有复选框

Javascript Can';无法清除Jquery中的所有复选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我尝试过几种不同的方法,但无法让代码在选中所有复选框后取消选中或清除所有复选框。最新的代码看起来像 $(".select_all").click(function(){ var state = ($(this).html() == "Select All") ? true : false; $(this).html((state) ? "Clear" : "Select All"); if ($(':checked').prop('checked', false

我尝试过几种不同的方法,但无法让代码在选中所有复选框后取消选中或清除所有复选框。最新的代码看起来像

$(".select_all").click(function(){
    var state = ($(this).html() == "Select All") ? true : false;    
    $(this).html((state) ? "Clear" : "Select All");

    if ($(':checked').prop('checked', false)) {
        $(':checkbox').each(function() {
         this.checked = true;                      
        });
    } else {
        $(':checkbox').each(function() {
            this.checked = false;                      
        });                                      
    };                                           
})

如果我理解正确,你需要这样的东西。请检查下面的代码段或此链接

$(“.select_all”)。单击(函数(){
var state=$(this.html()==“全选”;
$(this.html((state)-“清除”:“全选”);
$('input:checkbox').prop('checked',state);
});

根据可能的HTML,select\u all元素可以是复选框、按钮或其他。我假设你是前两种可能性中的一种

$(函数(){
$(“.select_all”)。单击(函数(e){
e、 预防默认值();
var state=($(this.html()=“全选”)?true:false;
$(this.html((state)-“清除”:“全选”);
$(':checkbox').prop('checked',state);
});
$(“。选择所有1”)。单击(函数(e){
变量状态=(this.nextSibling.textContent==“全选”)?true:false;
$(':checkbox').prop('checked',state);
this.nextSibling.textContent=(状态)?“清除”:“全选”;
});
});

我有一辆自行车
我有一辆车
我有一辆车
选择全部
全选
$(':checked')。prop('checked',false)
在每个复选框上将属性设置为
false
。它不返回
true/false
,因此不能用作
if
中的条件。如果要测试是否没有复选框,请使用:

if ($(':checked').length == 0)
然后,要选中所有复选框,您可以执行以下操作:

$(':checkbox').prop('checked', true);
但实际上根本不需要做这个检查;您已经在函数顶部的
状态
变量中确定了它是全选还是清除

您不需要使用
.each()
——选择器匹配多个元素时自动修改DOM循环的所有jQuery函数

而且很少需要使用
?true:false
在三元组中——您只需使用前面的表达式作为布尔值

因此,完整的代码是:

$(".select_all").click(function(){
    var state = $(this).text() == "Select All";    
    $(this).text(state ? "Clear" : "Select All");
    $(':checkbox').prop('checked', !state);                               
});

显示一些HTML怎么样?不确定您的状态检查用于什么。如果您只想取消选中所有复选框,可以执行
$(“输入:复选框”).prop('checked',$(this.prop('checked”)