определить выделенный выпадающий текст с помощью jquery $ (это) - PullRequest
3 голосов
/ 06 сентября 2010

У меня есть несколько выбранных элементов на странице, например

<select class="dd" id="dropdown1">
    <option value="123">Option A</option>
    <option value="234">Option B</option>
</select>
<select class="dd" id="dropdown2">
    <option value="456">Option C</option>
</select>

и т. Д. И т. П.

Я хотел бы использовать $ (this) jquery, чтобы определить, какой из нескольких раскрывающихся списков был выбран, и вернуть их текстовое значение.

Я могу использовать что-то вроде:

$("#dropdown1 :selected").text() 

Чтобы вернуть указанную запись, но когда я пытаюсь добавить $ (this) в микс, она не работает. Куда я иду не так?

Ответы [ 2 ]

12 голосов
/ 06 сентября 2010

Поскольку вы используете один и тот же класс для них всех, вы можете использовать это:

$(".dd").change(function(){
  alert($('option:selected', $(this)).text());
});

Чтобы получить параметр value для выбранного значения, вы можете использовать метод val().

Обратите внимание, что вы также можете использовать селектор starts with ^ следующим образом:

$("select[id^='dropdown']").change(function(){
  alert($('option:selected', $(this)).text());
});

Подробнее:

2 голосов
/ 06 сентября 2010

Возможно, вы захотите использовать функцию .val(), которая выдаст вам текущее значение выбранного элемента в раскрывающемся списке:

var selectedValue = $('#dropdown1').val();

И чтобы получить текст, а не значение:

var selectedText = $('#dropdown1 option:selected').text();

$(this) чаще используется в контексте обработчика событий, например click , change и т. Д. *

...