2009-07-01 10 views
10

私は次のjqueryコードを持っています。Jqueryとテーブルへの行の追加

var destTable = $("#numbers"); 
$(document).ready(function() { 
    $("#btnAdd").click(function() { 
    //Take the text, and also the ddl value and insert as table row. 
    var newRow = $("<tr><td>hi</td></tr>"); 
    $("#numbers").append(newRow); 
    }); 
}); 

私が本当に好きなのは、要素への参照を一度保存​​してそこから使用することです。

上記のコードは、期待通りに行を使用していますが、 $(destTable).append(newRow)またはdestTable.append(newRow)誰も私のためにこれにどのような光を当てることができますか?

おかげ

答えて

22

document.ready内部参照してください:

$(document).ready(function() { 
    var destTable = $("#numbers"); 
    $("#btnAdd").click(function() { 
    //Take the text, and also the ddl value and insert as table row. 
    var newRow = $("<tr><td>hi</td></tr>"); 
    $("#numbers").append(newRow); 
    }); 
}); 

document.readyのポイントは準備ができてDOMのを待つことです。 $('#numbers');を実行しようとすると(コードはドキュメント内の要素の後には表示されません)、DOMはまだこの要素を作成していないため、適切な参照はできません。一度これを行う

、あなたが行うことができる必要があります:click関数の内部

destTable.append(newRow); 

。しかし、最後の注意として、jQueryセットを表す変数の先頭に$を付けるのは一般的で容認されている方法です。だから、これは最高です:

var $destTable = $("#numbers"); 
+0

は理にかなっています。 – RubbleFord

0

あなたはこのようにappendToを使用することができます:私はそのための歓声が御馳走を働いたそれについて考えたとき

$("<tr><td>Hello</tr><tr>").appendTo("#MyTable > tbody") 
関連する問題