2010-10-13 17 views
26

Tengo lista desplegable <select> con id my_dropdown. Permitir selección múltiple. Yo sé cómo sacar el valor (s) seleccionado usando jQuery:jquery obteniendo todos los valores desplegables

var values = $('#my_dropdown').val(); 

Esto devolverá una matriz de valores si selecciono múltiple. También necesito obtener todos los valores en el menú desplegable independientemente de lo que esté seleccionado. ¿Cómo puedo usar jquery de manera similar para obtener todos los valores en el menú desplegable dada esa identificación?

+0

mejor solución encontrada en http://stackoverflow.com/questions/590163/how-to-get-all -options-of-a-select-using-jquery –

Respuesta

30

¿Qué tal algo como:

var values = []; 
$('#my_dropdown option').each(function() { 
    values.push($(this).attr('value')); 
}); 
5

se parece a:

var values = $('#my_dropdown').children('option').map(function(i, e){ 
    return e.value || e.innerText; 
}).get(); 

ver esto en acción: http://www.jsfiddle.net/YjC6y/16/

Referencia: .map()

+1

return e.value; (si desea valores en lugar de texto visualizado) De lo contrario, esta es una gran solución. +1 –

+0

Siempre me olvido de la función 'map' +1 –

4

Ejemplo:http://jsfiddle.net/FadHu/

var opts = $('#my_dropdown')[0].options; 

var array = $.map(opts, function(elem) { 
    return (elem.value || elem.text); 
}); 

El elemento <select> tiene una lista de las opciones en su propiedad options. Luego, use $.map(), que devuelve una matriz, para obtener la propiedad value o text de la opción.

(Nota del $.map() se comporta un poco diferente a $(element).map(). Puede ser un poco difícil.)

+1

Me gusta volver al texto si no hay ningún valor: p –

+0

@John - Sí, necesario para IE6, o si el' valor' por alguna razón es un cuerda vacía. De lo contrario, la mayoría de los navegadores le darán el 'texto' si no existe un atributo' valor' presente. – user113716

Cuestiones relacionadas