Работает следующий код:
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
Как реорганизовать вторую строку:
var cur_value = $(this).***option-selected***.text();
Что вы используете для ***option-selected***
?
Ответ 1
Для выбранного значения: $(this).val()
Если вам нужен выбранный элемент, $("option:selected", this)
Ответ 2
$(this).find('option:selected').text();
Ответ 3
Лучший и самый короткий способ, по моему мнению, для обмена событиями в выпадающем списке, чтобы получить выбранный вариант:
$('option:selected',this);
чтобы получить атрибут value:
$('option:selected',this).attr('value');
чтобы получить показанную часть между тегами:
$('option:selected',this).text();
В вашем примере:
$("#select-id").change(function(){
var cur_value = $('option:selected',this).text();
});
Ответ 4
var cur_value = $('option:selected',this).text();
Ответ 5
Вы можете использовать find
для поиска выбранной опции, которая является потомком node (s), на который указывает текущий объект jQuery:
var cur_value = $(this).find('option:selected').text();
Так как это, скорее всего, непосредственный ребенок, я бы предложил вместо .children
использовать .children
:
var cur_value = $(this).children('option:selected').text();
Ответ 6
Это должно работать:
$(this).find('option:selected').text();
Ответ 7
var cur_value = $(this).find('option:selected').text();
Так как option
скорее всего будет иметь непосредственный дочерний элемент select
, вы также можете использовать:
var cur_value = $(this).children('option:selected').text();
http://api.jquery.com/find/
Ответ 8
Лучшее предположение:
var cur_value = $('#select-id').children('option:selected').text();
В этом случае мне больше нравятся дети, потому что вы знаете, что только один ветвь дерева DOM...