2010-04-19 18 views
8

Come devo capireselettori di jQuery per selezionare/opzione: selezionati

$("select option:selected") 

nel seguente codice?

(tratto da here)

$("select").change(function() { 
    ... 
    $("select option:selected").each(function() { 
     ... 
    }); 
    ... 
}) 

E 'tutte le opzioni selezionate in tutto seleziona nel documento?

È in qualche modo correlato alla selezione corrente, $ (questo)?

risposta

14

Sì, si riferirà a tutte le opzioni selezionate in tutte le selezioni. Se si desidera solo guardare il corrente selezionare, si può fare qualcosa di simile: opzioni

$("select").change(function() { 
    ... 
    $(this).find("option:selected").each(function() { 
     ... 
    }); 
    ... 
}) 
+0

Grazie mille! –

1

E 'selezionata da tutto il documento. È possibile utilizzare find per selezionare solo da $(this)

0

$("select") troverà tutti gli elementi selezionati nel documento.

e dentro l'evento di modifica che si può dare

$(this).find("option:selected") 

per ottenere tutta l'opzione selezionata per l'elemento di selezione corrente.

L'istruzione recupera tutte le opzioni selezionate per tutti gli elementi selezionati all'interno del documento.

0

Sì, il codice è corretto!

È tutto selezionato in tutto seleziona nel documento?

Sì, lo fa.

È in qualche modo correlato all'attuale select, $ (this)?

Sì, $(this) è correlato all'elemento corrente.

Le codice seguente esegue un'iterazione su tutte le opzioni di tutte le caselle di selezione che sono selezionate:

$("select option:selected").each(function() { 
    ... 
}); 

Pertanto, si potrebbe fare:

$("select").change(function() { 
    ... 
    $(this).find("option:selected").each(function() { 
     ... 
    }); 
    ... 
}) 
0

$("select option:selected") selezionerà un elemento che è un option che ha il set di attributi selected, che è figlio di un elemento select. Troverà tutte le opzioni selezionate nella pagina. Non è correlato all'elemento selezionato $(this) - se lo si desidera, utilizzare .find() in questo modo: $(this).find('option:selected').

.each() quindi esegue l'iterazione su ciascuna opzione selezionata nella pagina facendo qualcosa con ciascun elemento.