2013-03-26 45 views
0

我試圖從one複製dropdownanother,但是,當它appends它將從previous one刪除options。爲什麼?jQuery的選擇選項的副本,使不同的輸出

我的代碼是:

HTML:

<select id="dropdown" multiple="multiple"> 
    <option value="1">Opt 1</option> 
    <option value="2">Opt 2</option> 
    <option value="3">Opt 3</option> 
</select> 
<select id="options2"></select> 

SCRIPT:

$(document).ready(function(){ 
    $('#dropdown').on('change',function(){ 
     $("#dropdown option:selected").each(function(){ 
      $("#options2").append($(this));    
     }); 
    });  
}); 

小提琴http://jsfiddle.net/5BU4T/

回答

3

獲取元素的克隆然後追加。

$("#options2").append($(this).clone()); 
+0

+1爲克隆:) – arjuncc 2013-03-26 05:17:11

0

嘗試

$("#options2").append("<option value='"+$(this).html()+"'>"+$(this).html()+"</option>");   
0

使用.clone()還記得忽略重複。

$(document).ready(function(){ 
    $('#dropdown').on('change',function(){ 
     $("#dropdown option:selected").each(function(){ 
      var vThis = $(this); 
      // check if already added in the dropdown, dont append again 
      var toAppend = true; 
      $('#options2 option').each(function(){ 
        if($(this).val() == vThis.val()) 
        { 
         toAppend = false; 
         return; 
        } 
      }); 

      if(toAppend == true) 
       $("#options2").append(vThis.clone());  
     }); 
    });  
}); 
0

試試這個:

$(document).ready(function(){ 
    $('#dropdown').on('change',function(){ 
     $("#dropdown option:selected").each(function(){ 
      if(!$("#options2 option[value="+$(this).val()+"]").length) 
      //to remove redundancy 
       $("#options2").append($(this).clone());    
     }); 
    });  
});