获取最近tr子节点的数据属性值

时间:2015-05-28 13:03:11

标签: jquery html asp.net razor

令人困惑的标题...... 但是我想得到一些td的data-attr值,它们与触发事件的按钮在同一个表中。

这是表格,或者更确切地说是表格的主体:

<tr class="reihe">
<td data-datum="@iiEntry.ccDatum">@iiEntry.ccEntryID</td>
<td class="size" data-firma="@iiEntry.ccBesucherFirma">@iiEntry.ccBesucherFirma</td>
<td class="size" data-name="@iiEntry.ccBesucherFirma">@iiEntry.ccBesucherName</td>
<td class="size" data-status="@iiEntry.ccStatus">@iiEntry.ccStatus</td>
<td class="size" data-ansprechpartner="@iiEntry.ccAnsprechpartner">@iiEntry.ccAnsprechpartner</td>
<td><button class="btn btn-default signin" id="signin-@iiEntry.ccEntryID">Anmelden</button></td>
<td><button class="btn btn-default delete">Löschen</button></td>
</tr>

应该处理所有这些的脚本:

    $("[id^='signin']").click(function() {
        var lCompleteRow = $(this).closest("tr");
        var lFirma = $(lCompleteRow[0]).data("firma");

        alert(lCompleteRow);
     });

现在,我已经尝试了很多,现在我可以访问tr,但我无法找到获取{{1}的数据属性值的方法或者我刚刚返回td

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

lCompleteRow指的是tr元素。它没有任何数据,因此data方法返回undefined。您应该在调用data方法之前选择目标单元格。

lCompleteRow.children('[data-firma]').data('firma');

另一种选择是:

$(this.parentNode).siblings('[data-firma]').data('firma');

答案 1 :(得分:0)

$(".signin").click(function() {
        var lCompleteRow = $(this).closest("tr").children("td:eq(1)").attr('data-firma');
        console.log(lCompleteRow);
 });