Comment obtenir $ (cette) option sélectionnée dans jQuery?

le code suivant fonctionne:

$("#select-id").change(function(){
  var cur_value = $('#select-id option:selected').text();
  . . .
});

comment reformuler la deuxième ligne en:

var cur_value = $(this).***option-selected***.text();

qu'utilisez-vous pour ***option-selected*** ?

65
demandé sur B Seven 2012-04-04 17:10:37

8 réponses

pour la valeur sélectionnée: $(this).val()

si vous avez besoin de l'élément d'option sélectionné, $("option:selected", this)

98
répondu jorgebg 2012-04-04 13:13:35
 $(this).find('option:selected').text();
79
répondu user568458 2013-06-11 09:00:11

le meilleur et le plus court chemin à mon avis pour les événements onchange sur la liste déroulante pour obtenir l'option sélectionnée:

$('option:selected',this);

pour obtenir l'attribut valeur:

$('option:selected',this).attr('value');

pour obtenir la partie montrée Entre les étiquettes:

$('option:selected',this).text();

dans votre échantillon:

$("#select-id").change(function(){
  var cur_value = $('option:selected',this).text();
});
39
répondu angelmedia 2014-12-12 10:00:24
var cur_value = $('option:selected',this).text();
25
répondu user2053983 2016-04-03 03:22:22

cela devrait fonctionner:

$(this).find('option:selected').text();
10
répondu He Shiming 2012-04-04 13:15:44

Vous pouvez utiliser find pour chercher l'option sélectionnée qui est un descendant du nœud(s) souligné par l'actuel objet jQuery:

var cur_value = $(this).find('option:selected').text();

Puisqu'il s'agit probablement d'un enfant immédiat, je suggère en fait d'utiliser .children à la place:

var cur_value = $(this).children('option:selected').text();
8
répondu Platinum Azure 2012-04-04 13:13:46
var cur_value = $(this).find('option:selected').text();

depuis option est susceptible d'être l'enfant proche de select vous pouvez également utiliser:

var cur_value = $(this).children('option:selected').text();

http://api.jquery.com/find /

7
répondu thomthom 2012-04-04 13:13:07

conjecture:

var cur_value = $('#select-id').children('option:selected').text();

j'aime mieux les enfants dans ce cas parce que vous savez que vous allez seulement une branche en bas de L'arbre DOM...

0
répondu Likwid_T 2012-04-04 13:13:46