O seguinte código funciona:
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
Como refatorar a segunda linha para:
var cur_value = $(this).***option-selected***.text();
Para que você usa ***option-selected***
?
javascript
jquery
B Seven
fonte
fonte
$("option:selected", this)
conforme mencionado acima, mas foi problemático. Eu estava usando um clique de botão para anexar o texto do elemento de opção selecionado a outro div, mas quando cliquei no botão, ele realmente mudou o elemento selecionado ... estranho. Use este.Na minha opinião, o melhor e mais curto caminho para eventos onchange no menu suspenso para obter a opção selecionada:
para obter o atributo value:
para obter a parte mostrada entre as tags:
Em sua amostra:
fonte
.context
, ele está obsoleto desde jQuery 1.10 - api.jquery.com/category/deprecated/deprecated-1.10fonte
Isso deve funcionar:
fonte
Você pode usar
find
para procurar a opção selecionada que é descendente do (s) nó (s) apontado (s) pelo objeto jQuery atual:Uma vez que este é provavelmente um filho imediato, eu sugeriria usar em seu
.children
lugar:fonte
Como
option
é provável que seja filho imediato deselect
você, você também pode usar:http://api.jquery.com/find/
fonte
option-selected
sem aspas ...?find('option:selected')
retorna uma string vazia para mim. Qual versão do jQuery é necessária? Estou trabalhando em 1.6.1.children('option:selected')
funciona.option:selected
está lá desde v1.0 api.jquery.com/selected-selectorMelhor chute:
Eu gosto mais de crianças neste caso porque você sabe que só vai um galho abaixo da árvore DOM ...
fonte
É apenas
Acho que jQuery é inteligente o suficiente para saber o que você precisa
fonte