У меня есть 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"
.
Мой вопрос, почему это не работает и как я могу это исправить?
Вы ищете первый 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")
Вы ориентируетесь TR
не первый TD's
A
внутри этого TR
, Попробуйте это,
$("tr[data-id='" + lastClickId + "'] td:first a").text()
tr
выбирает tr, а не td