0

我正在尝试从 复制dropdownoneanother但是当它appendsoptionsprevious one. 为什么?

我的代码是:

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>

脚本:

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

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

4

4 回答 4

3

获取元素的克隆,然后追加。

$("#options2").append($(this).clone()); 
于 2013-03-26T05:10:55.127 回答
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());     
        });
    });    
});
于 2013-03-26T05:20:51.533 回答
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());            
        });
    });    
});
于 2013-03-26T05:23:24.273 回答
0

尝试

$("#options2").append("<option value='"+$(this).html()+"'>"+$(this).html()+"</option>");         
于 2013-03-26T05:11:13.993 回答