簡體   English   中英

jQuery遍歷表元素

[英]Jquery traversing table elements

我正在使用Jquery動態填充表格元素。 我的表格將包含三列-標簽,文本區域和一個按鈕。 我在單擊按鈕時綁定了click事件。 以下是我的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');

我如何遍歷並獲得按鈕單擊功能上的標簽名稱。 任何幫助將不勝感激。

嘗試

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

要么

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

您可以嘗試類似

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

這將始終使用queryTitleCol作為其類來獲取先前的元素。 它僅返回一個元素,因此您不應該遇到您一直在描述的問題。

你可以試試這個

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

檢查這個FIDDLE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM