Le code suivant fonctionne:
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
Comment refactoriser la deuxième ligne en:
var cur_value = $(this).***option-selected***.text();
Pour quoi utilisez-vous ***option-selected***
?
javascript
jquery
B Sept
la source
la source
$("option:selected", this)
comme mentionné ci-dessus, mais c'était problématique. J'utilisais un clic de bouton pour ajouter le texte de l'élément d'option sélectionné à un autre div, mais quand j'ai cliqué sur le bouton, cela a en fait changé l'élément sélectionné ... bizarre. Utilisez celui-ci.Le meilleur et le plus court moyen à mon avis pour les événements onchange dans la liste déroulante pour obtenir l'option sélectionnée:
pour obtenir l'attribut value:
pour obtenir la partie affichée entre les balises:
Dans votre échantillon:
la source
.context
, il est obsolète depuis jQuery 1.10 - api.jquery.com/category/deprecated/deprecated-1.10la source
Cela devrait fonctionner:
la source
Vous pouvez utiliser
find
pour rechercher l'option sélectionnée qui est un descendant du ou des nœuds pointés par l'objet jQuery actuel:Comme il s'agit probablement d'un enfant immédiat, je suggérerais en fait d'utiliser à la
.children
place:la source
Comme il
option
est probable que vous soyez un enfant immédiat deselect
vous, vous pouvez également utiliser:http://api.jquery.com/find/
la source
option-selected
sans guillemets ...?find('option:selected')
renvoie une chaîne vide pour moi. Quelle version de jQuery est requise? Je travaille en 1.6.1.children('option:selected')
fonctionne.option:selected
est là depuis la v1.0 api.jquery.com/selected-selectorMeilleure estimation:
J'aime mieux les enfants dans ce cas parce que vous savez que vous ne descendez qu'une seule branche dans l'arbre DOM ...
la source
C'est juste
Je pense que jQuery est assez intelligent pour savoir ce dont vous avez besoin
la source