2010-10-05 131 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();