2009-09-07 13 views
16

Se ho questo selezionare:Come ottenere il testo dell'opzione selezionata di una selezione usando jquery?

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

e qualcuno seleziona l'opzione 3 'la settimana scorsa', posso ottenere il valore della scorsa settimana (che è 7), utilizzando $("#days").val(), ma come posso ottenere il valore del testo, ad esempio "Ultima settimana"?

+0

So che questa domanda è stata fatta prima, ma non riesco a trovarla ... – Joel

risposta

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

Aggiungere una classe "myOption" alle opzioni e un valore sttributo con il testo desiderato. Quindi:

$ (". MyOption"). Each (funzione (i) {if ($ (this) .attr ('selected')) {$ (this) .attr ('valore')});

3

Does.text() non fornisce il risultato desiderato?

http://marcgrabanski.com/article/jquery-select-list-values - pensa che questa troppo

+0

Ho provato anche '.text()', ma mi dà una stringa contenente tutte le opzioni, non solo quella selezionata –

+1

ah sì, devi usare come suggerisce najmeddine e assicurati di ottenere solo l'oggetto selezionato –

0

Potrebbe essere un po 'prolissa (io sono sicuro che posso ricordare un modo più semplice ...)

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

Io preferisco usare:

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