Получить атрибут данных последней строки таблицы

0

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

<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, а только содержимое последней строки таблицы, используя:

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

Возможно, я делаю глупую ошибку, но это сводит меня с ума.

Спасибо.

PS Я знаю, что я мог бы добавить некоторые уникальные идентификаторы, а затем получить данные с помощью

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

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

  • 1
    Уточнение: я думаю, вы по ошибке думаете о том, как используется .last() . Он уменьшает текущий набор соответствующих элементов ( <tbody> ) до последнего в соответствующем наборе (поскольку вы выбираете только один элемент, в вашем случае это фактически ничего не делает), в отличие от получения непосредственных дочерних элементов ( <tr> s) элемента (ов) в соответствующем наборе и получая только последний из них. Вы должны выбрать дочерние элементы, в которых вы заинтересованы в первую очередь, как показано в ответах ниже.
  • 0
    Спасибо за ваше объяснение.
Теги:

3 ответа

3
Лучший ответ

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

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

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

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

Используйте функцию attr():

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

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

Также это тоже будет работать:

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню