2013-11-10 8 views
0

Как я могу получить атрибут данных последней строки таблицы?Получить атрибут данных в последней строке таблицы

<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. Я знаю, что я мог бы добавить некоторые уникальные идентификаторы, а затем извлечь данные с

$data = $(uniqueid).data("notification-timestamp"); 

, но я хотел бы избежать этого.

+1

точки осветления: Я думаю, что вы ошибочно думать о том, как [ '.last()'] (http://api.jquery.com/ last /). Он уменьшает текущий набор согласованных элементов ('') до последнего в согласованном наборе (поскольку вы выбираете только один элемент, это фактически ничего не делает в вашем случае), в отличие от получения непосредственных детей (' 's) элемента (ов) в согласованном множестве и получая только последний из них. Вам нужно выбрать дочерние элементы, в которых вы заинтересованы в первую очередь, как в приведенных ниже ответах. – ajp15243

+0

Благодарим вас за разъяснения. – siannone

ответ

3

Вы хотите получить значение атрибута данных в tr, а не сам tbody:

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

Использование attr() функции:

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

Селектор #tableNotifications tr:last выбирает lasttr ребенка элемент с идентификатором tableNotifications.

Кроме того, это тоже будет работать:

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

Просто для уточнения:

Если вы просто хотите, чтобы получить значение атрибута из HTML использования .attr("data-attr"). Для получения дополнительной информации см. the difference between .data() and .attr().

+0

Ваша ссылка была действительно полезна, спасибо. – siannone

2

Это находит последний элемент с идентификатором 'tableNotifications'. Просто добавьте tr в свой селектор, чтобы получить последнюю строку:

$data = $("#tableNotifications tr").last().data("notification-timestamp"); 
Смежные вопросы