Antworten:
Meiner Meinung nach der beste und kürzeste Weg für Onchange-Ereignisse in der Dropdown-Liste, um die ausgewählte Option zu erhalten:
$('option:selected',this);
um das Wertattribut zu erhalten:
$('option:selected',this).attr('value');
So erhalten Sie den angezeigten Teil zwischen den Tags:
$('option:selected',this).text();
In Ihrer Stichprobe:
$("#select-id").change(function(){
var cur_value = $('option:selected',this).text();
});
.context, es ist veraltet seit jQuery 1.10 - api.jquery.com/category/deprecated/deprecated-1.10
var cur_value = $('option:selected',this).text();
Das sollte funktionieren:
$(this).find('option:selected').text();
Sie können findnach der ausgewählten Option suchen, die ein Nachkomme der Knoten ist, auf die das aktuelle jQuery-Objekt zeigt:
var cur_value = $(this).find('option:selected').text();
Da dies wahrscheinlich ein unmittelbares Kind ist, würde ich tatsächlich vorschlagen, .childrenstattdessen Folgendes zu verwenden :
var cur_value = $(this).children('option:selected').text();
var cur_value = $(this).find('option:selected').text();
Da optionist wahrscheinlich unmittelbares Kind von selectIhnen kann auch verwendet werden:
var cur_value = $(this).children('option:selected').text();
option-selectedohne Anführungszeichen ...?
find('option:selected')gibt eine leere Zeichenfolge für mich zurück. Welche Version von jQuery wird benötigt? Ich arbeite in 1.6.1. children('option:selected')funktioniert.
option:selectedist seit v1.0 da api.jquery.com/selected-selector
Beste Annahme:
var cur_value = $('#select-id').children('option:selected').text();
In diesem Fall mag ich Kinder besser, weil Sie wissen, dass Sie nur einen Ast im DOM-Baum entlang gehen ...
Es ist nur
$(this).val();
Ich denke, jQuery ist klug genug, um zu wissen, was Sie brauchen
$("option:selected", this)wie oben erwähnt versucht , aber das war problematisch. Ich habe einen Schaltflächenklick verwendet, um den Text des ausgewählten Optionselements an ein anderes Div anzuhängen, aber als ich auf die Schaltfläche geklickt habe, hat sich das ausgewählte Element tatsächlich geändert ... seltsam. Verwende das hier.