Получить текущее значение, выбранное в раскрывающемся меню, используя jQuery
У меня есть набор динамически сгенерированных выпадающих списков на моей странице. в основном я клонировал их с помощью jQuery. теперь я хочу зафиксировать значение, выбранное в каждом раскрывающемся списке событий изменения.
Я пробовал что-то вроде этого, которое не срабатывало.
$('._someDropDown').live('change', function(e) {
//debugger;
var v = $(this);
alert($(this + ':selected').val());
alert($(this).val());
});
Как мне это сделать?
Ответы
Ответ 1
Это то, что вам нужно:)
$('._someDropDown').live('change', function(e) {
console.log(e.target.options[e.target.selectedIndex].text);
});
Для нового использования jQuery on
$(document).on('change', '._someDropDown', function(e) {
console.log(this.options[e.target.selectedIndex].text);
});
Ответ 2
Чтобы получить текст выбранной опции
$("#your_select :selected").text();
Чтобы получить значение выбранной опции
$("#your_select").val();
Ответ 3
$("#citiesList").change(function() {
alert($("#citiesList option:selected").text());
alert($("#citiesList option:selected").val());
});
citiesList - это идентификатор тега select
Ответ 4
Проверить это →
Для получения текста
$("#selme").change(function(){
$(this[this.selectedIndex]).text();
});
Для получения значения
$("#selme").change(function(){
$(this[this.selectedIndex]).val();
});
Ответ 5
Вы можете попробовать:
$("._someDropDown").val();
Ответ 6
Чтобы получить значение выпадающего (select) элемента, просто используйте val().
$('._someDropDown').live('change', function(e) {
alert($(this).val());
});
Если вы хотите текст выбранного параметра, используя это:
$('._someDropDown').live('change', function(e) {
alert($('[value=' + $(this).val() + ']', this).text());
});
Ответ 7
Это на самом деле более эффективно и имеет лучшую читаемость, на мой взгляд, если вы хотите получить доступ к своему выбору с помощью этой или другой переменной
$('#select').find('option:selected')
На самом деле, если я правильно помню, phpStorm попытается автоматически исправить другой метод.
Ответ 8
Если вам нужен индекс текущего выбранного значения.
$selIndex = $("select#myselectid").prop('selectedIndex'));
Ответ 9
попробуйте это...
$("#yourdropdownid option:selected").val();
Ответ 10
Параметры, описанные выше, не будут работать, потому что они не являются частью спецификации CSS
(это расширение jQuery
). Проведя 2-3 дня для поиска информации, я обнаружил, что единственный способ выбрать текст выбранной опции из раскрывающегося списка:
{ $("select", id:"Some_ID").find("option[selected='selected']")}
Обратитесь к дополнительным примечаниям ниже:
Потому что: selected является расширением jQuery
, а не частью спецификации CSS
, запросы с использованием: selected не могут воспользоваться повышением производительности, предоставляемым встроенным методом DOM querySelectorAll(). Для достижения наилучшей производительности при использовании: выбрано для выбора элементов, сначала выберите элементы, используя чистый селектор CSS
, затем используйте .filter(":selected")
. (скопировано из: http://api.jquery.com/selected-selector/)
Ответ 11
Вы также можете использовать :checked
$("#myselect option:checked").val(); //to get value
или, как сказано в других ответах, просто
$("#myselect").val(); //to get value
и
$("#myselect option:checked").text(); //to get text