2010-04-19 18 views
8

¿Cómo debería entenderselectores de jQuery para seleccionar/opción: seleccionado

$("select option:selected") 

en el siguiente código?

(tomado de here)

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

¿Es todas las opciones seleccionadas en todo selecciona en el documento?

¿Está relacionado de alguna manera con la selección actual, $ (this)?

Respuesta

14

Sí, se referirá a todas las opciones seleccionadas en seleccionando todas. Si lo que desea es mirar a la corriente seleccione, se puede hacer algo como esto: opciones

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

¡Muchas gracias! –

1

Se seleccionó el documento conjunto. Puede usar find para seleccionar solo de $(this)

0

$("select") encontrará todos los elementos seleccionados en el documento.

y dentro del evento de cambio se puede dar

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

para obtener toda la opción seleccionada para el elemento de selección actual.

Su estado buscará todas las opciones seleccionadas para todos los elementos seleccionados dentro del documento.

0

Sí, ¡el código es correcto!

¿Se seleccionan todas las opciones en en el documento?

Sí, lo hace.

¿Está de alguna manera relacionado con el actual select, $ (this)?

Sí, $(this) está relacionado con el elemento actual.

Los código siguiente se repite todas las opciones de todas las cajas de selección que se seleccionan:

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

Por lo tanto, se podría hacer:

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

$("select option:selected") se seleccione un elemento que es un option que tiene el conjunto de atributos selected, que es hijo de un elemento select. Encontrará todas las opciones seleccionadas en la página. No está relacionado con el elemento cliquete $(this); si así lo desea, utilice .find() como lo siguiente: $(this).find('option:selected').

.each() luego itera sobre cada opción seleccionada en la página haciendo algo con cada elemento.