jquery datatable 分页全选
时间: 2024-12-18 17:08:28 浏览: 6
在jQuery DataTable中实现分页全选功能,可以通过以下步骤来完成:
1. **初始化DataTable**:首先,初始化你的DataTable,并启用分页功能。
2. **添加全选复选框**:在表头添加一个全选复选框,用于选择当前页的所有行。
3. **事件处理**:为全选复选框添加事件处理程序,以选择或取消选择当前页的所有行。
4. **同步状态**:确保在分页时,全选复选框的状态与每行的复选框状态同步。
以下是一个示例代码,展示了如何在jQuery DataTable中实现分页全选功能:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery DataTable 分页全选</title>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.24/css/jquery.dataTables.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdn.datatables.net/1.10.24/js/jquery.dataTables.min.js"></script>
</head>
<body>
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th><input type="checkbox" id="select-all"></th>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<!-- 示例数据 -->
</tbody>
</table>
<script>
$(document).ready(function() {
var table = $('#example').DataTable({
'columnDefs': [{
'orderable': false,
'className': 'select-checkbox',
'targets': 0
}],
'select': {
'style': 'multi',
'selector': 'td:first-child'
},
'order': [[1, 'asc']]
});
// 全选当前页
$('#select-all').on('click', function(){
var rows = table.rows({ 'search': 'applied' }).nodes();
$('input[type="checkbox"]', rows).prop('checked', this.checked);
});
// 单个复选框变化
$('#example tbody').on('change', 'input[type="checkbox"]', function(){
// If checkbox is not checked
if(!this.checked){
var el = $('#select-all').get(0);
// If "Select all" control is checked and has 'indeterminate' property
if(el && el.checked && ('indeterminate' in el)){
el.indeterminate = true;
}
}
});
});
</script>
</body>
</html>
```
在这个示例中,我们首先初始化了DataTable,并在表头添加了一个全选复选框。然后,我们为全选复选框添加了点击事件处理程序,以选择或取消选择当前页的所有行。最后,我们还处理了单个复选框的变化,以确保全选复选框的状态与每行的复选框状态同步。
阅读全文