根据上面的图片,如果用户取消选中复选框#2,我也试图取消选中复选框#1。目前,当我取消选中复选框#2时,我的代码将取消选中#1和#3。
HTML代码(已清理和简化)
<!--Grouping Row 1-->
<tr id="group-id-example_insertjobname">
<td colspan="11" data-group="-b-insertjobname" data-group-level="0">
<input type="checkbox" class="check" name="" value="">
</td>
</tr>
<!--Grouping Row 1-->
<tr role="row" class="odd group-item" data-group="-b-XXX">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="pay">
<input type="checkbox" name="PI0" class="Invoice Open" value="">
</td>
</tr>
<tr role="row" class="group-item" data-group="-b-XXX">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="pay">
<input type="checkbox" name="PI1" class="Invoice Open" value="">
</td>
</tr>
<!--Grouping Row 2-->
<tr id="group-id-example_insertjobname">
<td colspan="11" data-group="-b-insertjobname" data-group-level="0">
<input type="checkbox" class="check" name="" value="">
</td>
</tr>
<!--Grouping Row 2-->
<tr role="row" class="odd group-item" data-group="-b-XXX">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="pay">
<input type="checkbox" name="PI3" class="Invoice Open" value="">
</td>
</tr>
<tr role="row" class="group-item" data-group="-b-XXX">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="pay">
<input type="checkbox" name="PI4" class="Invoice Open" value="">
</td>
</tr>
Jquery功能
$(function() {
$('.pay input[type="checkbox"]').on('change', function() {
if ($('this:checkbox:not(:checked)')) {
$('.check').prop('checked', false);
}
});
});
答案 0 :(得分:1)
这应该适合你:
$(function() {
$('.pay input[type="checkbox"]').on('change', function() {
if (!$(this).prop('checked')) {
$(this).parent().parent().prevAll('tr').not('.group-item').first().find('.check').prop('checked', false);
}
});
});
由于$('.pay input[type="checkbox"]')
不是$('.check')
的孩子,您需要使用parent().parent()
与其他tr
元素达到同一级别,{{1}要获取所有以前的分组prevAll('tr').not('.group-item')
元素,获取第一个tr
元素,然后您必须找到first()
的输入,该输入应该是您正在寻找的输入。
答案 1 :(得分:0)
尝试
$(this).prevAll().find('.check').prop('checked', false);