Saya agak bingung tentang cara mendapatkan indeks opsi yang dipilih dari <select>
item HTML .
Di halaman ini ada dua metode yang dijelaskan. Namun, keduanya selalu kembali -1
. Ini kode jQuery saya:
$(document).ready(function(){
$("#dropDownMenuKategorie").change(function(){
alert($("#dropDownMenuKategorie option:selected").index());
alert($("select[name='dropDownMenuKategorie'] option:selected").index());
});
});
dan dalam html
(...)
<select id="dropDownMenuKategorie">
<option value="gastronomie">Gastronomie</option>
<option value="finanzen">Finanzen</option>
<option value="lebensmittel">Lebensmittel</option>
<option value="gewerbe">Gewerbe</option>
<option value="shopping">Shopping</option>
<option value="bildung">Bildung</option>
</select>
(...)
Kenapa perilaku ini? Apakah ada kemungkinan bahwa select
itu tidak "siap" pada saat menetapkan change()
metodenya? Selain itu, mengubah .index()
ke .val()
adalah mengembalikan nilai yang benar, jadi itulah yang lebih membingungkan saya.
[name=]
digunakan ketika pilih adaid
di atasnya. The[0].selectedIndex
danoption:selected
-answers bawah keduanya ok.Jawaban:
Metode pertama tampaknya berfungsi di browser yang saya uji, tetapi tag opsi tidak benar-benar sesuai dengan elemen aktual di semua browser, sehingga hasilnya dapat bervariasi.
Cukup gunakan
selectedIndex
properti elemen DOM:Memperbarui:
Karena versi 1.6 jQuery memiliki
prop
metode yang dapat digunakan untuk membaca properti:sumber
[0]
?selectedIndex
properti. Menambahkan[0]
mengkonversi objek jquery ke objek javascript yang memilikiselectedIndex
properti. Contoh ini tidak akan berfungsi tanpa[0]
selectedIndex
adalah properti, dan tidak ada atribut yang sesuai. Theattr
Metode mungkin bekerja untuk membaca properti di versi sebelumnya dari 1,6, tapi tidak dari versi itu.selectedIndex
tidak mulai dari 0 dengan opsi pertama?selectedIndex
properti nol berbasis. Saya memeriksa dokumentasi dan bahkan mencobanya sendiri untuk benar-benar yakin 100% tentang ini.Cara yang baik untuk menyelesaikan ini dengan cara Jquery
sumber
[0]
jawaban pilihan OP dan sebagai python dev, saya benar-benar dapat menghargai keterbacaan jawaban ini.Saya punya solusi yang sedikit berbeda berdasarkan jawaban oleh user167517. Dalam fungsi saya, saya menggunakan variabel untuk id dari kotak pilih yang saya targetkan.
Indeks dikembalikan dengan:
sumber
Anda bisa menggunakan
.prop(propertyName)
fungsi untuk mendapatkan properti dari elemen pertama di objek jQuery.Ini menjaga kode Anda dalam ranah jQuery dan juga menghindari opsi lain menggunakan pemilih untuk menemukan opsi yang dipilih. Anda kemudian dapat mengembalikannya menggunakan kelebihan:
sumber
coba ini
sumber
selectedIndex adalah properti Pilih JavaScript. Untuk jQuery Anda dapat menggunakan kode ini:
sumber
Anda bisa mendapatkan indeks kotak pilih dengan menggunakan: .prop () metode JQuery
Periksa ini :
sumber