我正在尝试了解如何确定有人点击.exempt
复选框以检查是否选中了下一个td
.spammy
复选框。我的代码无效。
JQUERY
$(document).on('click','.exempt',function() {
if ($(this).closest('td').next().is('checkbox:checked'), function() {
alert("test");
});
});
HTML
<td style="text-align: center; width: 20px; " class=""><input type="checkbox" class="exempt" name="exempt" id="3887"></td>
<td style="text-align: center; width: 20px; " class=""><input type="checkbox" class="spammy" name="spammy" id="3887"></td>
答案 0 :(得分:3)
td
之后的下一个元素不能是checkbox:checked
,因为根据定义它是td
元素。您的if
语句的语法也已关闭。
你可能意味着:
if ($(this).closest('td').next().find('input[type=checkbox]:checked').length) {
// Do something
}
或
if ($(this).closest('td').next().find('input[type=checkbox]').is(":checked")) {
// Do something
}
直播示例:
$(document).on('click', '.exempt', function() {
if ($(this).closest('td').next().find("input[type=checkbox]:checked").length) {
alert("yes, it's checked");
} else {
alert("no, it isn't");
}
});
<table>
<tbody>
<tr>
<td style="text-align: center; width: 20px; " class="">
<input type="checkbox" class="exempt" name="exempt">
</td>
<td style="text-align: center; width: 20px; " class="">
<input type="checkbox" class="spammy" name="spammy">
</td>
</tr>
<tr>
<td style="text-align: center; width: 20px; " class="">
<input type="checkbox" class="exempt" name="exempt">
</td>
<td style="text-align: center; width: 20px; " class="">
<input type="checkbox" class="spammy" name="spammy" checked>
</td>
</tr>
</tbody>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
单独:您有两个具有相同id
值的元素。这是无效的HTML,id
值必须在文档中是唯一的。