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”)代码>