选择/取消选择
按钮作用于复选框。
但它不适用于行表。
//Select row table
$('#example').on('click', 'tr', function() {
var $row = $(this),
isSelected = $row.hasClass('selected')
$row.toggleClass('selected')
.find(':checkbox').prop('checked', !isSelected);
});
// Problem : Checkbox !== select row
$("#selectAll, #unselectAll").on("click", function() {
var selectAll = this.id === 'selectAll';
$("#example tr :checkbox").prop('checked', selectAll);
});
我认为 list 只是为了显示,用于选择行并标记它。
How when the select / unselect button is clicked,
it select on row table too, Not just on the checkbox?
点击行表就可以看到
代码片段演示:
$('#example').dataTable();
//Select row table
$('#example').on('click', 'tr', function() {
var $row = $(this),
isSelected = $row.hasClass('selected')
$row.toggleClass('selected')
.find(':checkbox').prop('checked', !isSelected);
});
// Problem : Checkbox !== select row
$("#selectAll, #unselectAll").on("click", function() {
var selectAll = this.id === 'selectAll';
$("#example tr :checkbox").prop('checked', selectAll);
});
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet"/>
<button type="button" id="selectAll"> Select </button>
<button type="button" id="unselectAll"> UnSelect </button>
<table id="example" class="myclass" />
<thead>
<tr>
<th>
</th>
<th>Name</th>
<th>Company</th>
<th>Employee Type</th>
<th>Address</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="checkbox" />
</td>
<td>Calvin</td>
<td>TCS</td>
<td>IT</td>
<td>San Francisco</td>
<td>US</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>Ananda</td>
<td>TCS</td>
<td>IT</td>
<td>San Francisco</td>
<td>US</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>John</td>
<td>TCS</td>
<td>IT</td>
<td>San Francisco</td>
<td>US</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>Doe</td>
<td>TCS</td>
<td>IT</td>
<td>San Francisco</td>
<td>US</td>
</tr>
</tbody>
最佳答案
一种方法是在提供 second argument 的行上调用 .toggleClass()
说是添加还是删除类:
$("#example tr").toggleClass("selected", selectAll)
.find(":checkbox").prop('checked', selectAll);
添加到您的演示:
$('#example').dataTable();
//Select row table
$('#example').on('click', 'tr', function() {
var $row = $(this),
isSelected = $row.hasClass('selected')
$row.toggleClass('selected')
.find(':checkbox').prop('checked', !isSelected);
});
// Problem : Checkbox !== select row
$("#selectAll, #unselectAll").on("click", function() {
var selectAll = this.id === 'selectAll';
$("#example tr").toggleClass("selected", selectAll)
.find(":checkbox").prop('checked', selectAll);
});
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet"/>
<button type="button" id="selectAll"> Select </button>
<button type="button" id="unselectAll"> UnSelect </button>
<table id="example" class="myclass" />
<thead>
<tr>
<th></th><th>Name</th><th>Company</th><th>Employee Type</th><th>Address</th><th>Country</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" /></td><td>Calvin</td><td>TCS</td><td>IT</td><td>San Francisco</td><td>US</td>
</tr>
<tr>
<td><input type="checkbox" /></td><td>Ananda</td><td>TCS</td><td>IT</td><td>San Francisco</td><td>US</td>
</tr>
<tr>
<td><input type="checkbox" /></td><td>John</td><td>TCS</td><td>IT</td><td>San Francisco</td><td>US</td>
</tr>
<tr>
<td><input type="checkbox" /></td><td>Doe</td><td>TCS</td><td>IT</td><td>San Francisco</td><td>US</td>
</tr>
</tbody>
关于javascript - 选择复选框 !== 选择行表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47522658/