2012-09-12 227 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