$('.group-all').change(function () { const v = $(this).is(':checked'); const items = $(this).parent().next('ul').children(); items.each(function () { $(this).find('input[type=checkbox]').prop('checked', v); }); }); $('input[type=checkbox]:not(.group-all)').change(function () { const groupAll = $(this).parent().parent().prev('h4').find('.group-all'); if(!$(this).is(':checked')) { groupAll.prop('checked', false); } else { const siblings = $(this).parent().siblings().find('input[type=checkbox]:not(:checked)'); if(siblings.length === 0) { groupAll.prop('checked', true); } } }); function checkSiblings() { } $(function () { });