2010-12-13 14 views
9
kod

HtmlLista opcji kopiowania z listy rozwijanej. JQuery

<select id="dropdwon1"> 
<option value="1">Item1</option> 
<option value="2">Item2</option> 
<option value="3">Item3</option> 
</select> 

<select id="dropdwon2"></select> 

Muszę skopiować wszystkie opcje z dropdown1 do dropdown2 za pomocą jQuery. Czy możliwe jest proste kopiowanie treści?

Odpowiedz

27
$('#dropdwon1 option').clone().appendTo('#dropdwon2'); 

jsfiddle link

+0

@ mola10: to działa - tak, jak to napisał. Właśnie dodałem link do jsfiddle. Dlaczego próbujesz wywołać 'val',' text' i 'html' w kolekcji 3 elementów, gdy są one funkcjami pojedynczego elementu? –

+0

@ mola10 on ma rację, przestań zmieniać kod i twierdząc, że to nie działa. – troynt

+0

To działa !, thx. ".. Dlaczego próbujesz nazwać val ..." - 2 rano, zmęczony, przepraszam. – mola10

-1

Spróbuj tego:

$('#dropdwon2')[0].options = $('#dropdwon1')[0].options; 
+1

Nie działa, * .options jest tylko do odczytu. Dziennik Firebug: ustawienie właściwości, która ma tylko pobierający; – mola10

0

Czy można go "klonem" obecnie (nie początkowe) wybrany element też?

$('#dropdwon1 option').eq(1).attr('selected', 'selected'); 
$('#dropdwon1 option').clone().appendTo('#dropdwon2');​ 
0

Jquery klon jest normalnie do zrobienia, ale to nie działa dobrze z przedmiotów takich jak wybierz Sprawdź i radiem

Prace wokół jest ustawienie atrybutów HTML DOM przed klonowaniem oto jak robię to

var selects = $('form').find('select') ; 
selects.each (function () { 
var selvalue = $(this).val() ; 
var options = $(this).find('option') ; 
options.each (function() { 
    if ($(this).attr('value') == selvalue) 
     $(this).attr('selected' , true) ; 
    }); 
}) ; 
$('form').clone.appendTo('#target') 

Ustawienie wybranego atrybutu DOM true pozwoli klon skopiować wartość skutecznie

Powiązane problemy