实现多个表格的复选框功能,
HTML+CSS部分
<style>
.kctc-table tbody {
width: 1180px;
background-color: #fff;
}
.kctc-table tbody tr {
width: 1180px;
display: flex;
}
.kctc-table thead {
width: 1180px;
display: flex;
}
.kctc-table thead tr {
width: 1180px;
display: flex;
}
.kctc-table th,
td {
flex: 1;
border-bottom: 1px solid black;
min-height: 40px;
line-height: 40px;
font-size: 15px;
color: #666;
}
</style>
<table class="kctc-table kcnr" style="margin:0 auto 18px;text-align: center;">
<thead>
<th><input type="checkbox" class="checkAll" id="typeid-1" data-typeid="1">全选</th>
<th>名称</th>
</thead>
<tbody id="type-1" data-typeid="1">
<tr>
<td><input type="checkbox" class="check"></td>
<td>
2021年10月自考03708中国近代史纲要
</td>
</tr>
<tr>
<td><input type="checkbox" class="check"></td>
<td>
2021年10月自考03708中国近代史纲要
</td>
</tr>
</tbody>
</table>
JS部分
$(function () {
//点击全选按钮
$(".checkall").on('click', function () {
//获取到当前全选按钮的data-typeid
let id = $(this).attr("data-typeid");
//将获取到的data-typeid拼接给type-,并找到下面所有的复选框将其状态改变
$("#type-" + id).find("input[type=checkbox]").prop('checked', this.checked);
})
//点击复选框单选
$('.check').on('click',function () {
//获取当前点击的check父级的data-typeid
let id = $(this).parents("tbody").attr("data-typeid");
common(id);
event.stopPropagation();
})
//点击一行选中复选框
$('tr').click(function () {
//获取当前点击的tr父级的data-typeid
let id = $(this).parents("tbody").attr("data-typeid");
//获取当前点击tr里面复选框的状态
var isChecked = $(this).find("input[type=checkbox]").prop('checked');
//改变当前点击tr里面复选框的状态
$(this).find("input[type=checkbox]").prop('checked', !isChecked);
common(id);
})
function common (id){
//获取当前$("#type-" + id)下复选框的长度
let len = $("#type-" + id).find("input[type=checkbox]").length;
//获取当前$("#type-" + id)下复选框选中的长度
let checked_len = $("#type-" + id).find("input[type=checkbox]:checked").length;
if (len == checked_len) {
$("#typeid-" + id).prop('checked', true);
} else {
$("#typeid-" + id).prop('checked', false);
}
}
})