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

Il valore può essere recuperato da $select.val().Come ottenere l'etichetta dell'opzione select con jQuery?

E lo label?

Esiste una soluzione che funzionerà in IE6?

+0

Intendi come ottenere il valore selezionato, il valore selezionato? quale è nel tuo caso l'etichetta? – ant

+0

Questa domanda dovrebbe essere riformulata per dire "Come ottenere ** testo ** dell'opzione select con jQuery?" e tutti i riferimenti all'etichetta dovrebbero essere sostituiti con testo per evitare confusione con l'attributo dell'etichetta. –

risposta

192

Prova questo:

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

Questo non è sempre corretto. La descrizione mostrata dell'opzione può essere specificata anche da un attributo 'etichetta' (eccetto <= IE7). Vedi http://www.w3schools.com/tags/att_option_label.asp#gsc.tab=0 e http://www.w3.org/TR/html401/interact/forms.html#h-17.6 –

+1

Per ottenere il attributo _label_, può essere utilizzato: jQuery ('# theid opzione: selected'). attr ('label') –

-1

Siete alla ricerca di $select.html()

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

+1

Questo restituisce solo l'html per tutti gli elementi di opzione. Il testo dell'etichetta è/in/da qualche parte, ma non è il modo più efficace per farlo. – 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

Hi prima dare un id al di selezione come

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

quindi è possibile chiamare l'etichetta selezionato così:

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

Questo è esattamente quello che stavo cercando! – DirtyBirdNJ

4

Per ottenere il l'etichetta di un'opzione specifica in un menu a discesa è possibile -

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

o

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

Per riferimento c'è anche un attributo secondario label sulla opzione etichetta:

//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

Prova questo:

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

Questo tirerà fuori il testo visualizzato per entrambi gli stili di <option> elementi:

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

Se si ha sia un attributo label e il testo all'interno dell'elemento, verrà utilizzato l'attributo label, che è lo stesso comportamento del browser.

Ai posteri, questo è stato testato in jQuery 3.1.1