Em casos onde temos mais de uma coluna com o recurso de seleção global dentro de uma tabela html, podemos usar o exemplo abaixo para controlar qual elemento foi selecionado.

<th data-sortable="false" width="150px" class="text-danger">
    <input class="form-check-input" type="checkbox" id="chkSelectAllRem" />
    <label for="chkSelectAllRem">Todas/Nenhuma</label>
</th>
<th data-sortable="false" width="150px" class="text-success">
    <input class="form-check-input" type="checkbox" id="chkSelectAllEnc" />
    <label for="chkSelectAllEnc">Todas/Nenhuma</label>
</th>

...

<td>
    <div class="form-check">
        <input class="form-check-input" type="checkbox" name="op_rem[]" value="<?= $row->id_pr_ordens ?>"
               id="op_rem.<?= $row->id_pr_ordens ?>">
        <label class="form-check-label text-danger" for="op_rem.<?= $row->id_pr_ordens ?>">Remover</label>
    </div>
</td>
<td>
    <div class="form-check">
        <input class="form-check-input" type="checkbox" name="op_enc[]" value="<?= $row->id_pr_ordens ?>"
               id="op_enc.<?= $row->id_pr_ordens ?>" />
        <label class="form-check-label text-success" for="op_enc.<?= $row->id_pr_ordens ?>">Encerrar</label>
    </div>
</td>

...

<script>
$("th input[type='checkbox']").on("change", function() {
    // remove seleção de todos checkboxes
    $('input[type="checkbox"]').not(this).prop("checked", false);
    // seleciona todos os elemento da coluna selecionada
    var cb = $(this), // checkbox that was changed
        th = cb.parent(), // get parent th
        col = th.index() + 1; // get column index. note nth-child starts at 1, not zero
    $("tbody td:nth-child(" + col + ") input").prop("checked", this.checked); // select the inputs and [un]check it
});

$(document).ready(function() {
    // uncheck other boxes on the same row
    $(".form-check-input").click(function() {
        $('input[type="checkbox"]').change(function() {
            $(this).closest('tr').find('input[type="checkbox"]').not(this).prop('checked', false);
        });
    });
});
</script>
Categories: Tutorial