Uzyskaj identyfikator wybranej opcji za pomocą jQuery

80

Próbuję użyć jQuery, aby wykonać żądanie Ajax na podstawie wybranej opcji.

Czy istnieje prosty sposób na pobranie identyfikatora wybranej opcji (np. „Id2”) przy użyciu 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
});
botmsh
źródło

Odpowiedzi:

215

Możesz to uzyskać za pomocą :selectedselektora , na przykład:

$("#my_select").change(function() {
  var id = $(this).children(":selected").attr("id");
});
Nick Craver
źródło
Jak mam zastosować rozwiązanie w czystym javascript?
Leslie Nyahwa
23

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

wtedy robisz, co chcesz selectedIndex

Ponownie zredagowałem moją odpowiedź ... ponieważ selectedIndex nie jest dobrą zmienną do podania przykładu ...

Mihai Iorga
źródło
2 komentarze tutaj, ma już element DOM z thiswewnętrzną obsługą zdarzenia, nie ma potrzeby ponownego wyszukiwania ... i może chcieć wybrać inną nazwę zmiennej, tutaj selectedIndexbyłaby szczególnie niedokładna :)
Nick Craver
tak ... przepraszam ... spieszyłem się ... i wybrana zmienna indeksu była w ręku ... oczywiście, że nie musi ponownie zdać ... powtórzę
Mihai Iorga
Osobiście wybieram tę opcję, bo nie wymagała ona funkcji
.change
20
$('#my_select option:selected').attr('id');
wild_nothing
źródło
5

Najłatwiejszym sposobem jest var id = $ (this) .val (); z wnętrza wydarzenia, takiego jak zmiana.

jk121960
źródło