2012-06-14 5 views
0

У меня есть это раскрывающееся меню. Мне нужно клонировать для других моих выпадающих списков:JQuery изменение выбранного значения после выпадающего списка клонов

<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> 

Моей проблема, я хочу, чтобы клонировать то же содержание, но я хочу значение, выбранное из «группы» списка является «Группа» ..., стоимость которого составляет 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
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

+0

спасибо, но я просто клонирует значение параметра 3 ... Мне нужно другие варианты – csotelo

+0

@csotelo проверить Это обновление для Demo – thecodeparadox

+0

Да, мне нужно. end() большое спасибо – csotelo

2

попробовать это:

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

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

Я думаю, что это не тот код, который нужен OP –

+0

@TheSystemRestart, что он хочет? – undefined

+0

+1 Я думаю, что это правильно .. –

0

ЗДЕСЬ является DEMO. 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); 
Смежные вопросы