jQuery DataTables: How to select columns - Using checkboxes
Example for article at https://www.gyrocode.com/articles/jquery-datatables-how-to-select-columns/
by gyrocode
HTML
<link rel="stylesheet" href="https://cdn.datatables.net/v/dt/dt-1.10.13/se-1.2.0/datatables.min.css">
<script src="https://cdn.datatables.net/v/dt/dt-1.10.13/se-1.2.0/datatables.min.js"></script>
<h3><a target="_blank" href="https://www.gyrocode.com/articles/jquery-datatables-how-to-navigate-rows-with-keytable-plugin/">jQuery DataTables: How to select columns</a> <small>Using checkboxes</small></h3>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
<tr class="column-selector">
<th><input type="checkbox"></th>
<th><input type="checkbox"></th>
<th><input type="checkbox"></th>
<th><input type="checkbox"></th>
<th><input type="checkbox"></th>
<th><input type="checkbox"></th>
</tr>
</thead>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td>2011/04/25</td>
<td>$320,800</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>63</td>
<td>2011/07/25</td>
<td>$170,750</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>San Francisco</td>
<td>66</td>
<td>2009/01/12</td>
<td>$86,000</td>
</tr>
<tr>
<td>Bradley Greer</td>
<td>Software Engineer</td>
...
CSS
.column-selector th {
cursor: pointer;
}
JavaScript
$(document).ready(function (){
var table = $('#example').DataTable({
'orderCellsTop': true,
'select': 'api'
});
// Handle click event on a checkbox
$('#example').on('click', 'thead .column-selector input[type="checkbox"]', function(e){
e.stopPropagation();
var colIdx = $(this).closest('th').index();
if(this.checked){
table.column(colIdx).select();
} else {
table.column(colIdx).deselect();
}
});
// Handle click event on header cell containg a checkbox
$('#example').on('click', 'thead .column-selector th', function(e){
$('input[type="checkbox"]', this).trigger('click');
});
});