2016-10-29 5 views
0

変数this_tableを使用して、以下のコードでデータをテーブルに追加する方法を理解しようとしています。変数this_tableは#myTable1のようになります。 Jqueryはそれをコードの追加セクションの変数としては見ません。 $('#myTable > tbody > tr').append('<td>info,</td>');は問題なく動作します。jQuery変数を使用できないのはなぜですか?

jQueryの

$(document).on('submit', '.myForm', function(e) { 

    var tableid = $(this).closest("div").find("table").attr("id"); //find table id 
    var this_table = '#' + tableid; //Add ID selector 
    $('this_table > tbody > tr').append('<td>info,</td>'); //Append to table 

    e.preventDefault(); 
}); 

答えて

2

あなたの変数は文字列として解釈されます。これに

$('this_table > tbody > tr').append('<td>info,</td>'); //Append to table 

$(this_table + ' > tbody > tr').append('<td>info,</td>'); //Append to table 
0

あなたが機能を見つけるのjQuery使用することができますあなたは

変更するには、この行...文字列と変数を連結する必要があります。

$(this_table).find("tr").append("<td>info</td>"); 
+0

これは必ずしも正確に同じ要素を選択していません:行これに

$('this_table > tbody > tr').append('<td>info,</td>'); //Append to table 

を変更。彼は直接子を意味する ">"セレクタを使います。あなたのコードはtr要素であるすべての兄弟を選択します。現在使用しているのと同じセレクタを取得するには、$(this_table).children( 'tbody')。children( 'tr')。append( '​​info、')を使用します。 – Michael

+0

@Michaelあなたは正しいです。ありがとう –

関連する問題