获取最后一个表行的数据属性

时间:2013-11-10 19:49:59

标签: jquery html

如何获取最后一个表行的数据属性?

<tbody id="tableNotifications">
    <tr class="notificationsRowEntry success" data-notification-timestamp="1384105387"></tr>
    <tr class="notificationsRowEntry success" data-notification-timestamp="1384105367"></tr>
    <tr class="notificationsRowEntry success" data-notification-timestamp="1384105357"></tr>
    <tr class="notificationsRowEntry success" data-notification-timestamp="1384105323"></tr>
</tbody>

问题是我无法获取数据属性,只能使用以下内容获取最后一个表行的内容:

$data = $("#tableNotifications").last().data("notification-timestamp");

也许我犯了一个愚蠢的错误,但这让我发疯了。

谢谢。

P.S。我知道我可以添加一些独特的ID然后用

获取数据
 $data = $(uniqueid).data("notification-timestamp");

但我想避免这种情况。

3 个答案:

答案 0 :(得分:3)

您希望获取tr的数据属性的值,而不是tbody本身:

$("#tableNotifications > tr:last-child").data("notification-timestamp");

答案 1 :(得分:2)

使用attr()功能:

var data = $("#tableNotifications tr:last").attr("data-notification-timestamp");

选择器#tableNotifications tr:last选择ID为last的元素的tr tableNotifications子项。

这也会起作用:

var data = $("#tableNotifications tr").last().attr("data-notification-timestamp");

只是为了澄清:

如果您只想从HTML获取属性值,请使用.attr("data-attr")。有关详细信息,请参阅the difference between .data() and .attr()

答案 2 :(得分:2)

那是找到id为'tableNotifications'的最后一个元素。只需将tr附加到您的选择器即可获取最后一行:

$data = $("#tableNotifications tr").last().data("notification-timestamp");