使用.closest .attr获取错误的tr id

时间:2014-11-06 10:08:58

标签: javascript jquery datatable

我正在阅读具有最接近变化属性的表格tr id但是我一直得到错误的值并且不知道如何修复。

如果我选择“较低”(16)复选框,我会得到tr id,然后上面的那个就是桃子。现在如果我这样做,反过来我只保留“顶部”(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>

1 个答案:

答案 0 :(得分:0)

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"));

    });

DEMO

如果您希望所有选中的复选框都带有父tr id

$(".report_report").change(function () {

    var cheked = $(".report_report").filter(function () {
        return this.checked;
    }).closest("tr").get();
    console.log(cheked);

});

注意:您的html invalid tr 未关闭