Получить первый контент td через tr data-id

0

У меня есть HTML-код followng:

<tr data-id='23'>
   <td><a href='../index.php?typeID=23'>Title</a></td>
   <td><a href='updateArticleType.php?typeID=23'>Update</a></td>
   <td><a href='#' data-toggle='modal' data-target='#myModal' class='warning-dialog' data-id='23'>Delete</a></td>
</tr> 

И следующий код JQuery:

$(function () {
    var lastClickId;
    $('.warning-dialog').click(function () {
        lastClickId = $(this).data("id");
        var str = $("tr[data-id='" + lastClickId + "']:first").text();
        alert(str);
    });

Мне нужно получить name между тегами archos.

Я пробовал код выше, но в предупреждении появляется "Name Update Delete".

Мой вопрос, почему это не работает и как я могу это исправить?

  • 0
    tr выбирает tr, а не td
Теги:
table

2 ответа

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

Вы ищете первый tr вместо первого td.

Ваш селектор хочет быть более похожим на это:

 $("tr[data-id='" + lastClickId + "']>td:first")

Я не рекомендую в зависимости от порядка td в вашем селекторе. Однажды вы можете добавить новый столбец перед столбцом заголовка. В тот день, когда ваш код сломается.

Рассмотрим название класса в заголовке и используйте его в своем селекторе следующим образом:

<tr class="data-item" data-id='23'>
   ...
   <td class="item-title">...</td>
   ...
</tr> 

JS:

 $(".data-item[data-id='" + id + "'].item-title:first")
1

Вы ориентируетесь TR не первый TD's A внутри этого TR, Попробуйте это,

$("tr[data-id='" + lastClickId + "'] td:first a").text()

DEMO

  • 0
    @Rahaorabhu Это то же самое, что и мой ответ, за исключением того, что вы также нацеливаетесь на якорь. Якорь не должен быть целевым и просто добавляет дополнительное ограничение, делая разметку более рискованной для изменения в будущем.
  • 1
    @flem Да, нет смысла выбирать ребенка в контексте ОП. Так что я только что убрал его. и я просто подумал, что нацеливание на требуемый элемент является хорошей практикой при попытке получить его текст. Кстати, вы предоставили несколько альтернативных методов, используя класс. это тоже приятно. :)
Показать ещё 1 комментарий

Ещё вопросы

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