El siguiente código funciona:
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
Cómo refactorizar la segunda línea para:
var cur_value = $(this).***option-selected***.text();
¿Para qué usas ***option-selected***
?
javascript
jquery
B siete
fuente
fuente
$("option:selected", this)
como se mencionó anteriormente, pero eso fue problemático. Estaba usando un clic de botón para agregar el texto del elemento de opción seleccionado a otro div, pero cuando hice clic en el botón, en realidad cambió el elemento seleccionado ... extraño. Usa este.En mi opinión, la mejor y más corta forma para que los eventos onchange en el menú desplegable obtengan la opción seleccionada:
para obtener el atributo de valor:
para obtener la parte mostrada entre las etiquetas:
En tu muestra:
fuente
.context
, está en desuso desde jQuery 1.10 - api.jquery.com/category/deprecated/deprecated-1.10fuente
Esto debería funcionar:
fuente
Puede usar
find
para buscar la opción seleccionada que sea descendiente de los nodos señalados por el objeto jQuery actual:Dado que es probable que este sea un hijo inmediato, en realidad sugeriría usar en su
.children
lugar:fuente
Dado que
option
es probable que sea hijo inmediato deselect
usted, también puede usar:http://api.jquery.com/find/
fuente
option-selected
sin comillas ...?find('option:selected')
devuelve una cadena vacía para mí. ¿Qué versión de jQuery se requiere? Estoy trabajando en 1.6.1.children('option:selected')
funciona.option:selected
ha estado allí desde v1.0 api.jquery.com/selected-selectorMejor conjetura:
Me gustan más los niños en este caso porque sabes que solo vas a bajar una rama del árbol DOM ...
fuente
Es solo
Creo que jQuery es lo suficientemente inteligente como para saber lo que necesitas
fuente