2010-12-13 109 views
9

HTML代码从下拉列表中复制选项列表。 JQuery的

<select id="dropdwon1"> 
<option value="1">Item1</option> 
<option value="2">Item2</option> 
<option value="3">Item3</option> 
</select> 

<select id="dropdwon2"></select> 

我需要dropdown1复制所有选项dropdown2,使用jQuery。是否可以简单地复制内容?

回答

27
$('#dropdwon1 option').clone().appendTo('#dropdwon2'); 

jsfiddle link

+0

@ mola10:它的工作 - 我的方式写的。我刚刚为jsfiddle添加了一个链接。为什么当它们是单项功能时,你试图在3个项目的集合上调用'val','text'和'html'? – 2010-12-13 23:02:06

+0

@ mola10他是对的,停止改变代码并声称它不起作用。 – troynt 2010-12-13 23:06:21

+0

It Works!,thx。 “......你为什么要打电话给val ...” - 早上2点,累了,对不起。 – mola10 2010-12-13 23:11:12

-1

试试这个:

$('#dropdwon2')[0].options = $('#dropdwon1')[0].options; 
+1

不起作用,* .options是只读的。 Firebug日志:设置一个只有一个getter的属性; – mola10 2010-12-13 22:42:35

0

你能来 “克隆” 目前(未初始)选定的项目吗?

$('#dropdwon1 option').eq(1).attr('selected', 'selected'); 
$('#dropdwon1 option').clone().appendTo('#dropdwon2');​ 
0

jQuery的克隆是normaly的路要走,但它不与项目很好地工作,如 选择复选和单选

的解决办法是设置HTML DOM属性之前克隆这里是如何我做

var selects = $('form').find('select') ; 
selects.each (function () { 
var selvalue = $(this).val() ; 
var options = $(this).find('option') ; 
options.each (function() { 
    if ($(this).attr('value') == selvalue) 
     $(this).attr('selected' , true) ; 
    }); 
}) ; 
$('form').clone.appendTo('#target') 

设置选择DOM属性为true允许克隆复制的价值有效