2009-09-07 11 views
16

Si tengo este selecto:¿Cómo obtener el texto de la opción seleccionada de una selección usando jquery?

 <select id="days"> 
     <option value="0">Today</option> 
     <option value="1">Yesterday</option> 
     <option value="7">Last week</option> 
    </select> 

y alguien selecciona la tercera opción 'la semana pasada', que se puede obtener el valor de la semana pasada (que es 7), utilizando $("#days").val(), pero ¿cómo puedo obtener el valor del texto, es decir, "La semana pasada"?

+0

Sé que esta pregunta se ha hecho antes, pero no puedo encontrarla ... – Joel

Respuesta

20
$("#days option:selected").text() 
0

Agregue una clase "myOption" a las opciones y un valor sttribute con el texto que desee. Entonces:.

$ ("MyOption") cada uno (function (i) {if ($ (this) .attr ('selected')) {$ (this) .attr ('valor')});

3

¿.text() no le da el resultado que está buscando?

http://marcgrabanski.com/article/jquery-select-list-values - encontraron esta demasiado

+0

Intenté '.text()' también, pero me da una cadena que contiene todas las opciones, no solo la seleccionada –

+1

ah sí, necesitas usarla como najmeddine sugiere y asegúrate de que solo obtienes el elemento seleccionado –

0

podría ser un poco prolijo (estoy seguro de puedo recordar una manera más fácil ...)

var value = $("#days").val(); 
$("option[value='" + value + "']", "#days").text() 
0

Yo prefiero usar:

var s = $("#days"); 
var i = s.prop("selectedIndex"); //get selected indexs 
s.children().eq(i).text(); 
Cuestiones relacionadas