Получить идентификатор выбранной опции с помощью jQuery

80

Я пытаюсь использовать jQuery для выполнения запроса ajax на основе выбранной опции.

Есть ли простой способ получить идентификатор выбранного параметра (например, «id2») с помощью jQuery?

<select id="my_select">
   <option value="o1" id="id1">Option1</option>
   <option value="o2" id="id2">Option2</option>
</select>


$("#my_select").change(function() {
    //do something with the id of the selected option
});
ботмш
источник

Ответы:

215

Вы можете получить его с помощью :selectedселектора , например:

$("#my_select").change(function() {
  var id = $(this).children(":selected").attr("id");
});
Ник Крейвер
источник
Как мне применить ваше решение в чистом javascript?
Лесли Няхва
23

var id = $(this).find('option:selected').attr('id');

тогда ты делаешь что хочешь с selectedIndex

Я перередактировал свой ответ ... поскольку selectedIndex не подходит для примера ...

Михай Йорга
источник
2 комментария здесь, у него уже есть элемент DOM thisвнутри обработчика событий, нет необходимости выполнять поиск снова ... и, возможно, он захочет выбрать другое имя переменной, здесь selectedIndexбудет особенно неточно :)
Ник Крейвер
да ... извините ... я торопился ... и переменная selectedIndex была в руке ... конечно, ему не нужно проходить снова ... я переделаю
Михай Йорга
Лично я выбрал эту опцию, потому что она не требовала функции
.change
5

Самый простой способ сделать это - var id = $ (this) .val (); изнутри событие, как при изменении.

jk121960
источник