2011-04-14 191 views
0

我試圖通過單擊將它添加到第一個textarea的相同容器的按鈕來複制我的html代碼中的textarea。添加html元素jQuery

我的代碼是:

$("#note_adder").click(function(){$("#p_note").clone().append('note_id')}); 
  • 按鈕的id是note_adder
  • 多行文本的id是p_note
  • 容器的id是note_id

我也想改變的name屬性新創建的textarea。

回答

8

兩件事情:你需要使用appendTo,你需要一個#note_id的前面。

$('#note_adder').click(function() { 
    var counter = $('[id^="p_note"]').length; 
    $('#p_note').clone().attr({ 
     id: 'p_note_' + counter, 
     name: 'p_note_' + counter 
    }).appendTo('#note_id'); 
}); 

我也改變了克隆textarea的id因爲ID應該是唯一的。同時連續單擊,就應該產生新的文字區域具有的名稱和ID:

  • p_note_1
  • p_note_2
  • 等...

下面是Shadow Wizard's answer借了演示:http://jsfiddle.net/cq9Hq/2/

+0

+1用於提示更改ID,但按鈕單擊兩次時會發生什麼? :) – 2011-04-14 11:44:14

+0

@Shadow,哈哈好點!讓我繼續努力......現在如何? – 2011-04-14 11:44:48

+0

簡單的計數器..可以隨意使用我的下面的測試用例。 :) – 2011-04-14 11:47:48

3

必須appendTo

$("#note_adder").click(function(){$("#p_note").clone().appendTo('#note_id')}); 

現場測試案例:http://jsfiddle.net/cq9Hq/

更新與BOX9更好的方法:http://jsfiddle.net/cq9Hq/1/

+0

感謝提及appendTo錯誤我沒有注意到它,併爲現場測試:) – Star 2011-04-14 11:56:30

+0

@歡呼聲,因爲Box9的答案是一樣的,我的和更好(相同的ID是真的壞主意)我離開我的唯一原因答案是針對測試用例。 – 2011-04-14 11:58:29