Jqueryを使用してテーブル要素に動的にデータを入力しています。私のテーブルには、ラベル、テキストエリア、ボタンの3つの列があります。ボタンをクリックするとクリックイベントがバインドされます。以下は私の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]を配列として取得しています。lable要素を取得するためにtd要素を取得できません。find()を試してみましたが、それでもtd配列として取得しています。
rowElem.find('td.queryTitleCol');
ボタンのクリック機能でラベル名をトラバースして取得するにはどうすればよいですか。どんな助けでも本当にありがたいです。