2010-12-13 54 views
9
código HTML

Copiar la lista de opciones de la lista desplegable. JQuery

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

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

necesito copiar todas las opciones de DropDown1 a dropdown2, usando jQuery. Si es posible copiar contenidos simplemente?

Respuesta

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

jsfiddle link

+0

@ mola10: se hace el trabajo - la forma en que lo escribió. Acabo de agregar un enlace para jsfiddle. ¿Por qué intentas llamar a 'val',' text' y 'html' en una colección de 3 elementos cuando son funciones de un solo elemento ??? –

+0

@ mola10 tiene razón, deja de alterar el código y afirma que no funciona. – troynt

+0

¡Funciona !, thx. "... ¿Por qué estás tratando de llamar val ..." - 2 en punto de la mañana, cansado, lo siento. – mola10

-1

Prueba esto:

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

No funciona, * .options es de solo lectura. Registro de Firebug: establecer una propiedad que solo tiene un getter; – mola10

0

¿Se puede hacer "clon" en la actualidad (no iniciales) del ítem seleccionado también?

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

Jquery clon es normaly el camino a seguir, pero no funciona bien con elementos tales como seleccione cheque y radio

La solución es establecer los atributos del DOM HTML antes de la clonación aquí es cómo lo hago

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

se establece el atributo dom seleccionada para permitir cierto clon para copiar el valor efectivamente

Cuestiones relacionadas