克隆下拉列表后,JQuery更改选定的值

时间:2012-06-14 17:41:38

标签: jquery select clone

我有这个下拉列表。我需要克隆我的其他下拉列表:

<select name="general">
<option value="0" style="font-size:11px">Nothing</option>
<option class="dropdown_root" value="1">Admin</option>
<option class="dropdown_root_first_lvl" value="2">General</option>
<option class="dropdown_root_next_lvl" value="3">Group</option>
<option class="dropdown_root_next_lvl" value="4">Sales</option>
</select>

<select name="group">
</select>

我的问题是我想要克隆相同的内容,但我希望从列表“group”中选择的值是“Group”...其值为3

我试过了:

var new_dd = $('select[name="general"] option').clone();
new_dd.val('3').attr('selected','selected').appendTo('select[name="group"]');

但我发现了这个:

<select name="group">
<option value="3" style="font-size:11px" selected="selected">Nothing</option>
<option class="dropdown_root" value="3" selected="selected">Admin</option>
<option class="dropdown_root_first_lvl" value="3" selected="selected">General</option>
<option class="dropdown_root_next_lvl" value="3" selected="selected">Group</option>
<option class="dropdown_root_next_lvl" value="3" selected="selected">Sales</option>
</select>

我想看到的是:

<select name="group">
<option value="0" style="font-size:11px">Nothing</option>
<option class="dropdown_root" value="1">Admin</option>
<option class="dropdown_root_first_lvl" value="2">General</option>
<option class="dropdown_root_next_lvl" value="3" selected="selected">Group</option>
<option class="dropdown_root_next_lvl" value="4">Sales</option>
</select>

怎么能得到这个?

3 个答案:

答案 0 :(得分:3)

var new_dd = $('select[name="general"] option').clone();
new_dd
    .filter(function() { 
        return this.value == 3;  // filter for option with value=3
    }) // in this point I have only option with value=3
    .attr('selected', 'selected') // give selected to that option
    .end() // capture all options again
    .appendTo('select[name="group"]'); // append to target

<强> DEMO

答案 1 :(得分:2)

试试这个:

$('select[name="general"] option').each(function(){
   $(this).clone().appendTo('select[name="general"]')
})

$('select[name="general"] option[value="3"]').prop("selected", true)

答案 2 :(得分:0)

这是演示。 http://jsfiddle.net/Simplybj/Eyq5x/

var new_dd = $('select[name="general"] option').clone();
new_dd.appendTo('select[name="group"]');
$('select[name="group"]').val( $('select[name="general"] option').eq(2).val() ).attr('selected',true);