2016-04-25 10 views
0

コンテキストの上にある行のtd値にアクセスしようとしています。上記の行をprev()メソッドで取得でき、children()メソッドで子を取得することもできますが、セレクタでfind()を追加すると、探している特定のセルを見つけることができません。td値の取得が未定義の場合

返信をchildren()からログに記録すると、そこにあるすべてのテーブルデータが表示されます。

なぜ私はidによって見つけることができないのですか?以下のコードを参照してください。

$("#tblProducts tbody").on("click", "#btnSubmitUpdate", function (e) { 
    var btnSaveUpdate = $(this); 

    var tr = btnSaveUpdate.closest("tr"); 

    var trAbove = $(tr.prev()[0]); 
    var desc = trAbove.children().find("#tdDescription").val(); 

    //desc is returning undefined 
    console.log(desc); 
}); 
+0

'td'(テーブルセル)(またはVal())プロパティ値を持っていません。 'trAbove.children()。find("#tdDescription ").html()'を使用してください。 –

+0

でも、 'var desc = trAbove.children()。find( "#tdDescription").html();' undefinedを返す! @AlexKudryashev –

+0

'$( '#tdDescription'、trAbove).html()'を試してください。その間、あなたの 'td'は' id = "tdDescription" '' class = "tdDescription" 'ではないと確信していますか? –

答えて

0

子供を使用せずに、trAboveでfind()を直接使用するだけでした。

$("#tblProducts tbody").on("click", "td", function() { 
    var tdAttr = $(this).attr('class') 
    alert($(this).closest('tr').find("td."+tdAttr).text()) 
    /* 
     or $(this).text(), $(this).attr('class') or $(this).data('id') 
    */ 
}) 

私は、サンプルコードを書いた:これは

関連する問題