通过tr data-id获取td的第一个内容

时间:2013-12-01 10:17:48

标签: jquery html-table

我有以下HTML代码:

<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);
    });

我需要在archos标签之间获得name

我尝试了上面的代码,但警报是"Name Update Delete"

我的问题是为什么它不起作用,我该如何解决?

2 个答案:

答案 0 :(得分:4)

您正在寻找第一个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 :(得分:1)

您定位TR内的TD's而不是第一A TR,请尝试此操作,

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

DEMO