2012-09-27 47 views
0

我有一個HTML下拉菜單不同的名字:jQuery的複製HTML選擇的選擇,但

<select name="name1"> 
<option value="1">John</option> 
<option value="2">Doe</option> 
<option value="3">Foo</option> 
<option value="4">Bar</option> 
</select> 

有沒有產生相同的選項,但像一個不同的下拉菜單名稱的jQuery函數:

<select name="name2"> 
<option value="1">John</option> 
<option value="2">Doe</option> 
<option value="3">Foo</option> 
<option value="4">Bar</option> 
</select> 

回答

2

嘗試克隆並更改名稱,

var $newSelect = $('select[name=name1]').clone().attr('name', 'name2'); 

append/prepend $ newSelect to anywher你e資料:)在

另外,作爲David建議您可以通過以下方式動態生成的名稱,

var $newSelect = $('select[name=name1]') 
        .clone() 
        .attr('name', function(i,n) { 
         var int = 
           parseInt(n.match(/\d*/),10); 
         return n.replace(/\d*/, int + 1); 
        }); 
+0

不要忘記:http://stackoverflow.com/questions/742810/clone-isnt-cloning-select - 值 – Johan

+1

也許這只是在這個例子中,但是,鑑於這個例子,我會建議:'.attr('name',function(i,n){var int = parseInt(n.match(/ \ d */),10);返回n.replace(/ \ d * /,int + 1); });'(這是未經測試,但*應該*動態增加數字,而不是在替換字符串中對其進行硬編碼)。 –

+1

真的..總是很好,它可以擴展。 –

1
 
$('<jquery selector criteria>').clone().attr("name", "new_name") 
3

假設$place是要追加新組合框。

$select = $('select').clone(); 

$place.append($select.attr('name', 'name2')); 

demo

參考: