我正在读取更改时具有最接近属性的表tr id,但我一直得到错误的值,不知道如何修复。
如果我选择了第一个"下"(16)复选框,我会得到tr id ok,然后上一个就会变成peachy。现在,如果我反过来做,我只会得到"顶部"(17)的值。我的猜测是,这是因为类名是相同的,但我不确定,我不能影响类名,因为它是由Datatables生成的。
有人能看一眼jquery并告诉我我做错了什么吗。
谢谢你的帮助。
var a = $(".report_report").change(function() {
var closestTr = $('.report_report:checkbox:checked').closest('tr').attr('id');
alert(closestTr);
这是的基本表格概念
<table class="something">
<tr id = "17">
<td>
<input class="report_report" type = "checkbox">
</td>
</tr>
<tr id = "16">
<td>
<input class="report_report" type = "checkbox">
</td>
</tr>
</table>
尝试
HTML
<table class="something">
<tr id="17">
<td>
<input class="report_report" type="checkbox"/>
</td>
</tr>
<tr id="16">
<td>
<input class="report_report" type="checkbox"/>
</td>
</tr>
</table>
JS
$(".report_report").change(function() {
alert($(this).closest("tr").attr("id"));
});
演示
如果您想要带有父tr id 的所有选中复选框
$(".report_report").change(function () {
var cheked = $(".report_report").filter(function () {
return this.checked;
}).closest("tr").get();
console.log(cheked);
});
注意:html是invalid
tr未关闭