2012-03-21 90 views
0

法「HTML」我想使用jQuery遺漏的類型錯誤:無法調用未定義

$("#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++; 
}); 

創建一個動態的形式,當我點擊添加按鈕我從控制檯 得到這個錯誤"Uncaught TypeError: Cannot call method 'html' of undefined"它是一個圖書館問題?我怎麼知道這個函數屬於哪個庫? 非常感謝

+0

爲什麼你不帶參數調用'.after()'? – 2012-03-21 11:21:21

+0

'after'期待一個參數:http://api.jquery.com/after/,我不確定它是否可以工作,因爲'newTextBoxDiv'尚未添加到文檔中。 – 2012-03-21 11:21:45

+0

我寧願使用.append而不是after(),似乎我所遵循的示例沒有經過測試 – Yasminette 2012-03-21 11:30:35

回答

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

感謝man it works !!!!乾杯 – 2015-09-21 06:23:18

相關問題