2010-02-01 23 views
94
<select> 
<option value="test">label </option> 
</select> 

El valor se puede recuperar por $select.val().¿Cómo obtener la etiqueta de la opción de selección con jQuery?

¿Qué tal el label?

¿Hay alguna solución que funcione en IE6?

+0

¿Quiere decir cómo obtener el valor de seleccionado, el valor seleccionado? que está en la etiqueta de tu caso? – ant

+0

Esta pregunta debe redactarse de nuevo para decir "Cómo obtener ** texto ** de la opción de selección con jQuery?" y todas las referencias a la etiqueta deberían reemplazarse por texto para evitar confusiones con el atributo de la etiqueta. –

Respuesta

192

Prueba esto:

$('select option:selected').text(); 
+3

Esto no siempre es correcto. La descripción mostrada de la opción también puede especificarse mediante un atributo 'etiqueta' (excepto <= IE7). Consulte http://www.w3schools.com/tags/att_option_label.asp#gsc.tab=0 y http://www.w3.org/TR/html401/interact/forms.html#h-17.6 –

+1

Para obtener la _label_ attribute, esto se puede usar: jQuery ('# theid option: selected'). attr ('label') –

-1

Usted está buscando $select.html()

http://api.jquery.com/html/

+1

Eso solo devuelve el html para todos los elementos de opción. El texto de la etiqueta está/in/there en algún lugar, pero no es la forma más eficiente de llegar a él. – MSpreij

0
<SELECT id="sel" onmouseover="alert(this.options[1].text);" 
<option value=1>my love</option> 
<option value=2>for u</option> 
</SELECT> 
13

Hola primero dar un id al selecto como

<select id=theid> 
<option value="test">label </option> 
</select> 

continuación, puede llamar a la etiqueta seleccionada como esa:

jQuery('#theid option:selected').text() 
+0

¡Esto es exactamente lo que estaba buscando! – DirtyBirdNJ

4

Para obtener el etiqueta de una opción específica en un menú desplegable, puede escribir esto -

$('.class_of_dropdown > option[value='value_to_be_searched']').html(); 

o

$('#id_of_dropdown > option[value='value_to_be_Searched']').html(); 
7

Como referencia también hay un label atributo secundario en la etiqueta de opción:

//returns "GET THIS" when option is selected 
$('#selecter :selected').attr('label'); 

HTML

<select id="selecter"> 
<option value="test" label="GET THIS"> 
Option (also called label)</option> 
</select> 
0

Prueba esto:

$('select option:selected').prop('label'); 

Esto hará que el texto que se muestra para ambos estilos de <option> elementos:

  • <option label="foo"><option> ->"foo"
  • <option>bar<option> ->"bar"

Si tiene tanto un atributo label y el texto dentro del elemento, usará el atributo label, que es el mismo comportamiento que el navegador.

Para la posteridad, esto fue probado bajo jQuery 3.1.1

Cuestiones relacionadas