Jquery选择选项复制产生不同的输出

时间:2013-03-26 05:05:06

标签: jquery html

我正在尝试将dropdownone复制到another,但是当它appends时,它会从options中移除previous 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>

SCRIPT:

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

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

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

尝试

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

答案 2 :(得分: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());     
        });
    });    
});

答案 3 :(得分: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());            
        });
    });    
});