Если вы можете немного изменить свою разметку, вы можете использовать некоторые дополнительные классы и атрибуты данных, чтобы получить желаемый эффект.Во-первых, для каждого флажка, который должен быть автоматически выбран группой / столбцом, потребуется класс на уровне группы и / или на уровне столбца.Например:
<input type="checkbox" class="groupA column3" />
Далее, все флажки заголовков должны совместно использовать общий класс, который может быть нацелен на jQuery и атрибуты данных, чтобы связать их вместе с флажками, которыми они должны управлять.
<input type="checkbox" class="groupHeading" data-group="GroupA" />
<input type="checkbox" class="columnHeading" data-group="GroupA" data-column="Column3" />
С этой информацией jQuery может сделать все остальное.
// Handle group heading change
$('.groupHeading').change(function () {
// Set checked state to all checkboxes with class matching data-group
$('.'+$(this).data('group')).attr('checked', $(this).is(':checked'));
});
// Handle column heading change
$('.columnHeading').change(function () {
// Set checked state to all checkboxes with class matching data-group and data-column
$('.'+$(this).data('group')+'.'+$(this).data('column')).attr('checked', $(this).is(':checked'));
});
Рабочий пример можно посмотреть по адресу http://jsfiddle.net/eKxJm/1/.