令人困惑的标题...... 但是我想得到一些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
。
我该如何解决这个问题?
答案 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);
});