Javascript 如何在jQuery中仅选中“所有类别”复选框或其他“重新生成类别”复选框

Javascript 如何在jQuery中仅选中“所有类别”复选框或其他“重新生成类别”复选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,例如,如果在给定示例中选中“所有类别”复选框,则应取消选中所有剩余复选框;如果选中一个或多个剩余类别,则应取消选中“所有类别”复选框 HTML 试试这个,它是JS的 function checkAll(ele) { var checkboxes = document.getElementsByTagName('input'); if (ele.checked) { for (var i = 0; i < checkboxes.length; i++) {

例如,如果在给定示例中选中“所有类别”复选框,则应取消选中所有剩余复选框;如果选中一个或多个剩余类别,则应取消选中“所有类别”复选框

HTML

试试这个,它是JS的

function checkAll(ele) {
 var checkboxes = document.getElementsByTagName('input');
 if (ele.checked) {
     for (var i = 0; i < checkboxes.length; i++) {
         if (checkboxes[i].type == 'checkbox') {
             checkboxes[i].checked = true;
         }
     }
 } else {
     for (var i = 0; i < checkboxes.length; i++) {
         console.log(i)
         if (checkboxes[i].type == 'checkbox') {
             checkboxes[i].checked = false;
         }
     }
 }
功能检查全部(ele){
var复选框=document.getElementsByTagName('input');
如果(勾选元素){
对于(变量i=0;i
}


您可以将以下代码行添加到
更改事件处理程序中:

if($(this).is('.all-categories:checked')){
    $('.checkboxlist_list .checkbox').prop('checked', false);
    return $(".category-holder").text($(this).next().text());
}
$('.all-categories').prop('checked', false);
// ... the rest of your code ...


可选地(甚至更好),您可以将所有复选框设置为
:选中
,并在
时禁用它们。所有类别
复选框均为
:选中

if($(this).is('.all-categories:checked')){
    $('.checkboxlist_list .checkbox').prop({'checked': 1, 'disabled' : 1});
    return $(".category-holder").text($(this).next().text());
}else if($(this).is('.all-categories')){
    $('.checkboxlist_list .checkbox').prop('disabled', 0);
}
// ... the rest of your code ...

您可以尝试检查当前单击的元素id是否为
所有类别
如果是,请使用'removeAttr(),取消选中
checkboxlist\u list
类中的所有复选框:


如果我选中“所有类别”复选框,那么所有其他复选框都会被选中,我不想选中。好的,等一下:-)刚刚意识到你真正想要的是什么我可以用多个复选框来做什么我的意思是添加所有主题和其他主题复选框你可以制作一个HTML JSFIDLE示例吗?可以在这里发布它
<input type='checkbox' name='select_all' onClick='javascript:checkAll(this)'>
if($(this).is('.all-categories:checked')){
    $('.checkboxlist_list .checkbox').prop('checked', false);
    return $(".category-holder").text($(this).next().text());
}
$('.all-categories').prop('checked', false);
// ... the rest of your code ...
if($(this).is('.all-categories:checked')){
    $('.checkboxlist_list .checkbox').prop({'checked': 1, 'disabled' : 1});
    return $(".category-holder").text($(this).next().text());
}else if($(this).is('.all-categories')){
    $('.checkboxlist_list .checkbox').prop('disabled', 0);
}
// ... the rest of your code ...
if($(this).attr('id')=='all-categories'){
     $('.checkboxlist_list .checkbox').removeAttr('checked')
}