我有以下html / jQuery代码,其中我的CheckAll流程框工作正常,但同时 当点击这个CheckAll复选框时,我还想突出显示表格中的所有行 取消选中CheckAll框时取消突出显示。
不幸的是,我似乎无法实现目标。
如果有人可以请求协助,我会很感激,因为我似乎无法看到我做错了什么。
<tr>
<th id=" " class="t12subheader">
<input id="checkAll" type="checkbox">
</th>
</tr>
<tr>
<td class="t12datavalue" align="center" style=""><input type="checkbox" value="123" name="f01"></td>
<td class="t12datavalue" style="">123</td>
<td class="t12datavalue" style="">333</td>
<td class="t12datavalue" style="">Alex</td>
<td class="t12datavalue" style="">Smith</td>
</tr>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$("#checkAll").click(function() {
$("input[name='f01']").attr('checked',
$('#checkAll').is(':checked'));
$(this).closest('tr').toggleClass('highlight');
});
});
</script>
答案 0 :(得分:2)
更新了具有额外功能的解决方案
$("#checkAll").click(function() {
var self = $(this);
if (self.attr('checked')) {
self.closest('tr').nextAll().addClass('highlight').find(':checkbox').attr('checked', true);
}
else {
self.closest('tr').nextAll().removeClass('highlight').find(':checkbox').attr('checked', false);
}
});
$("table :checkbox").not("#checkAll").click(function() {
var self = $(this);
var checked = self.attr('checked');
self.closest('tr').toggleClass('highlight');
if (!checked) {
$("#checkAll").attr('checked', false);
}
});
答案 1 :(得分:0)
更改
$(this).closest('tr').toggleClass('highlight');
到
$(this).closest('tr').nextAll().toggleClass('highlight');
作品。