0

我正在使用 Jquery 来动态填充表格元素。我的表格将包含三列 - 标签、文本区域和一个按钮。我在单击按钮时绑定了一个单击事件。下面是我的 Jquery 代码。

var rowElem = $('<tr id="'+ key + '" class="queryRow"> </tr>');
rowElem.append($('<td class="queryTitleCol">' + key + '</td>')); 
var colElem = $('<td class="queryValueCol"></td>');
var textAreaElem = $('<textarea rows="10" cols="75"/>');
colElem.append(textAreaElem);
rowElem.append(colElem);
textAreaElem.val(value);
var btnCol = $(
            '<td valign="top">'
            + '<button style="width:42px; vertical-align:middle; margin:2px;" title="delete">'
            +   '<span class="ui-icon ui-icon-trash" style="float:left;"/>'
            + '</button>'
            +'</td>');
    rowElem.append(btnCol);
    $("button", btnCol).click(action);
}

在按钮事件中,我使用 Jqury.closest 来获取 TR 标签和标签元素。下面是我的按钮点击代码。

function action() { 
var rowElem = $(this).closest("tr");
var labelTD = $(".queryTitleCol", rowElem);
}

但是 labelTD ,我总是把 [td.queryTitleCol] 作为一个数组。我无法获取 td 元素来获取标签元素。我尝试使用 find(),但我仍然得到 td 数组。

rowElem.find('td.queryTitleCol');

如何在按钮的单击功能上遍历并获取标签名称。任何帮助将不胜感激。

4

3 回答 3

1

尝试

var label = $(".queryTitleCol", rowElem)[0].innerHTML;

或者

var label = $(".queryTitleCol", rowElem).text();
于 2012-09-12T17:07:50.543 回答
0

你可以试试这个

function action() { 
     var titleCol = $(this).parent().parent().find('td:eq(0)').text();
}

检查这个小提琴

于 2012-09-12T17:22:38.057 回答
0

你可以尝试类似的东西

$('button').click(function(){
  $(this).prev('.queryTitleCol').text();
});

这将始终将前一个元素queryTitleCol作为其类。它只返回一个元素,所以你不应该遇到你一直在描述的问题。

于 2012-09-12T17:08:08.363 回答