2012-09-12 40 views
0

我正在使用jquery动态填充表元素。我的表格将有三列 - 标签,textarea和一个按钮。点击按钮,我将绑定一个点击事件。下面是我的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'); 

如何遍历并获取按钮的点击功能上的标签名称。任何帮助将非常感激。

回答

1

尝试

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

var label = $(".queryTitleCol", rowElem).text(); 
0

你可以尝试像

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

这东西总是与queryTitleCol成为同级车抢前一个元素。它只返回一个元素,所以你不应该遇到你所描述的问题。

0

你可以试试这个

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

入住这FIDDLE