2010-10-05 126 views
14

我如何克隆下拉列表(组合框),与选择的选项?拷贝/克隆下拉列表在jQuery的选择的选项

jquery .clone方法不适用于firefox选定的选项。

我有不同的控制一个div。我必须复制整个div到一个变量像这样

var $orginalDiv = $('#myDiv'); 
var $clonedDiv = $orginalDiv.clone(); 

$clonedDiv.find('select').each(function() { 


....Something do here for assigning selected options from original div .. 

      }); 

让我知道我们该怎么做,它必须在FireFox中工作。

+0

你可能正在寻找这一个,[jquery克隆不复制选择dom属性](http://stackoverflow.com/questions/3776270/jquery-clone-doesnt-copy-select-dom-properties) – Reigel 2010-10-05 08:03:23

+0

@Reigel这是为单一控制,但我需要多个下拉列表。我如何在问题代码中分配val? – Brij 2010-10-05 08:09:24

回答

17
var $orginalDiv = $('#myDiv'); 
var $clonedDiv = $orginalDiv.clone(); 

//get original selects into a jq object 
var $originalSelects = $orginalDiv.find('select'); 

$clonedDiv.find('select').each(function(index, item) { 

    //set new select to value of old select 
    $(item).val($originalSelects.eq(index).val()); 

}); 

在的jsfiddle试试吧here

+0

获取错误:$ originalSelects未定义 – Brij 2010-10-05 08:17:58

+0

@brzdotnet对不起,错字纠正 – redsquare 2010-10-05 08:21:48

+0

+1我不确定索引是否可以工作,如果'select'不是兄弟姐妹,但它[作品](http:// jsfiddle。净/ kvzam /)! – Reigel 2010-10-05 08:26:34

0

可以实现一键克隆下拉菜单?

+0

没错,只需使用'$(下拉).clone'在按钮的点击处理程序()。 – 2013-02-28 19:19:22

+0

如何改变克隆dropdown.i的名称和id属性使用$(下拉).clone()ATTR(“名”,“技能”)。但它不工作:( – user3217843 2014-10-27 12:43:16

0

嗨,你有一些图像掩码customedropdown那么简单克隆不会显示选定的值,你必须先分配一个下拉列表中选择的值第二个下拉,然后用隐式调用change事件类似以下。 $( '选择[ID * = cstate]')VAL($( “选择[ID * =状态]”)VAL()。)。 $(“#cstate”)。change();