使用最接近的.attr获取错误的tr id



我正在读取更改时具有最接近属性的表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是invalidtr未关闭

最新更新