2012-03-21 16 views
0

の「HTML」メソッドを呼び出すことはできません私はjqueryのキャッチされない例外TypeError:未定義

$("#AddMobile").click(function() { 

    var newTextBoxDiv = $(document.createElement('div')).attr("id", 'MobileDiv' + counter); 

    newTextBoxDiv.after().html('<input type="text" id="Mobile' + counter + '"/>' + 
     '<input type="button" id="DeleteMobile+' + counter + '" class="DeleteMobile" Value="Delete"/>'); 

    newTextBoxDiv.appendTo("#TextBoxesGroup"); 

    counter++; 
}); 

を使用して動的フォームを作成したいと追加ボタンでIをクリックしたときに、私は、コンソール からこのエラー"Uncaught TypeError: Cannot call method 'html' of undefined"を取得するには、それはですライブラリの問題?どうすれば関数が属するライブラリを知ることができますか? 多くのおかげ

+0

なぜパラメータなしで '.after() 'を呼び出すのですか? –

+0

'after'は引数を期待しています:http://api.jquery.com/after/' newTextBoxDiv'がドキュメントにまだ追加されていないので、それでも動作するかどうかはわかりません。 –

+0

私はむしろafter()の代わりに.appendを使用したいと思っています。私が従っていた例はテストされていないようです。 – Yasminette

答えて

0

あなたのコードにいくつかの変更:

  1. あなたはこの$(document.createElement('div'))をする必要はありません、あなたはjQueryのあなた$("<div>")のためにそれをやらせることができます。

  2. .after()または.html()のいずれかを使用します。使用方法ではなく.after().html("...")です。 .after()では、選択した要素の後にHTMLを追加することができます(あなたの場合は、新しく作成されたdivです)。 .html()を使用すると、選択した要素内のコンテンツが変更されます。

1

だけで適切に行のafter()

newTextBoxDiv.after().html('<label>Textbox #'+ counter + ' : </label>' + '<input type="text" name="textbox' + counter + '" id="textbox' + counter + '" value="" >'); 

その作業を削除します。やってみなよ。

+0

ありがとうございます。乾杯 –

関連する問題