jQuery DataTables – Row selection with Information Displayed
by lizthompson07
HTML
<link rel="stylesheet" href="https://cdn.datatables.net/1.12.1/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/select/1.4.0/css/select.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.2.3/css/buttons.dataTables.min.css">
<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
<script src="https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/select/1.4.0/js/dataTables.select.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.2.3/js/dataTables.buttons.min.js"></script>
<div id="events">
</div>
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
<th>Image</th>
</tr>
</thead>
<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>
<td>
<img src="https://www.svgrepo.com/show/429785/human-occupation-4.svg" alt="Picture Title">
</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>
<td>
<img src="https://www.svgrepo.com/show/429786/construction-man.svg" alt="Picture Title">
</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>San Francisco</td>
<td>66</td>
...
CSS
#events {
margin-bottom: 1em;
padding: 1em;
background-color: #f6f6f6;
border: 1px solid #999;
border-radius: 3px;
height: 100px;
overflow: auto;
}
JavaScript
$(document).ready(function() {
var events = $('#events');
var table = $('#example').DataTable( {
columnDefs: [
{
target: 6,
visible: false,
},
],
dom: 'Bfrtip',
select: true,
buttons: [
{
text: 'Select all',
action: function () {
table.rows().select();
}
},
{
text: 'Select All On Page',
action: function() {
table.rows({
page: 'current'
}).select();
}
},
{
text: 'Clear select',
action: function () {
table.rows().deselect();
events.empty();
}
},
{
text: 'Get selected data',
action: function () {
var images = table.rows( {selected: true }).data();
events.empty();
for (let i = 0; i < images.length; i++) {
events.prepend(images[i][6]);
}
}
}
]
} );
$("#example").on('click','tbody tr',function() {
var events = $('#events');
/* var test = table.rows($(this)).data() */;
var test = table.rows({ selected: true }).data();
for (let i = 0; i <test.length; i++) {
events.append(test[i][6]);
}
});
} );