[javascript] DataTables에서 행의 체크박스를 전체 선택 및 선택 해제하는 방법은 무엇인가요?
// DataTables 생성 및 초기화
var table = $('#myTable').DataTable();

// 전체 선택 체크박스 이벤트 핸들러 등록
$('#selectAll').on('change', function() {
    var isChecked = $(this).is(':checked');

    // 테이블의 모든 체크박스 상태 변경
    table.rows().every(function() {
        this.data().isSelected = isChecked;
    });

    // 체크박스 상태에 따른 행의 스타일 변경
    table.rows().nodes().to$().each(function() {
        if (isChecked) {
            $(this).addClass('selected');
        } else {
            $(this).removeClass('selected');
        }
    });
});

// 개별 선택 체크박스 이벤트 핸들러 등록
$('#myTable').on('change', 'input[type="checkbox"]', function() {
    var rowData = table.row($(this).closest('tr')).data();
    rowData.isSelected = $(this).is(':checked');

    // 체크박스 상태에 따른 행의 스타일 변경
    if (rowData.isSelected) {
        $(this).closest('tr').addClass('selected');
    } else {
        $(this).closest('tr').removeClass('selected');
    }
});

위의 코드는 DataTables를 사용하여 테이블을 생성하고, 체크박스의 전체 선택과 개별 선택을 처리하는 방법을 보여줍니다. #myTable은 DataTables를 적용할 테이블의 ID이고, #selectAll은 전체 선택 체크박스의 ID입니다.

전체 선택 체크박스의 이벤트 핸들러에서는 체크박스의 변경 여부를 확인하고, 테이블의 모든 체크박스 상태를 변경합니다. 또한, 체크박스 상태에 따라 각 행의 스타일도 변경됩니다.

개별 선택 체크박스의 이벤트 핸들러에서는 해당 체크박스가 속한 행의 데이터를 가져와 상태를 변경하고, 행의 스타일도 변경합니다.

이를 통해 DataTables에서 행의 체크박스를 전체 선택 및 선택 해제할 수 있습니다.

참고 자료: