Jika Anda tahu Indeks, Nilai, atau Teks. juga jika Anda tidak memiliki ID untuk referensi langsung.
Ini , ini dan ini semua adalah jawaban yang membantu.
Markup contoh
<div class="selDiv">
<select class="opts">
<option selected value="DEFAULT">Default</option>
<option value="SEL1">Selection 1</option>
<option value="SEL2">Selection 2</option>
</select>
</div>
$("#my_select").val("the_new_value").change();
... ... dari soJawaban:
Selector untuk mendapatkan elemen opsi tengah dengan nilai adalah
Untuk indeks:
Untuk teks yang dikenal:
EDIT : Seperti yang dikomentari di atas OP mungkin setelah mengubah item yang dipilih dari dropdown. Dalam versi 1.6 dan lebih tinggi, metode prop () disarankan:
Dalam versi yang lebih lama:
EDIT2 : setelah komentar Ryan. Kecocokan pada "Pilihan 10" mungkin tidak diinginkan. Saya tidak menemukan pemilih yang cocok dengan teks lengkap, tetapi filter berfungsi:
EDIT3 : Gunakan hati-hati
$(e).text()
karena dapat mengandung baris baru membuat perbandingan gagal. Ini terjadi ketika opsi ditutup secara implisit (tanpa</option>
tag):Jika Anda cukup menggunakan
e.text
spasi putih tambahan seperti baris baru tambahan akan dihapus, menjadikan perbandingan lebih kuat.sumber
Tak satu pun dari metode di atas memberikan solusi yang saya butuhkan jadi saya pikir saya akan memberikan apa yang berhasil untuk saya.
sumber
prop
dan tidakattr
..attr
sudah benar. "dipilih" adalah atribut dari <option> w3.org/TR/html5/forms.html#attr-option-selectedprop
preferensiattr
. Itu menghemat harus mencari setiap properti di w3.org untuk melihat apakah itu hanya atribut, atau diimplementasikan dengan tindakan dukungan.Anda bisa menggunakan
val()
metode:sumber
the_value
. .val bukan fungsi pemilih / filter! Ini adalah accessor properti dan melewatinya yang string SETS nilainya. Saya mencoba untuk mengambil kembali suara saya tetapi terlambat setelah saya menyadari ini dalam pengujian.Menurut nilai, apa yang berhasil bagi saya dengan jQuery 1.7 adalah kode di bawah ini, coba ini:
sumber
.change()
perlu. Saya punya contoh di mana saya mengganti thumbnail berdasarkan SELECT. Ketika saya mengunggah tema khusus, itu seharusnya memilih "Tema Kustom" dari daftar opsi. The.prop()
panggilan bekerja, tapi tanpa.change()
, gambar thumbnail di sebelah kanan pilih saya tidak pernah diperbarui.prop
nilai boolean menghasilkan output yang sama. misalnya.prop('selected', true)
Ada sejumlah cara untuk melakukan ini, tetapi pendekatan terbersih telah hilang di antara jawaban teratas dan banyak argumen
val()
. Juga beberapa metode berubah pada jQuery 1.6, jadi ini membutuhkan pembaruan.Untuk contoh-contoh berikut, saya akan menganggap variabel
$select
adalah objek jQuery yang menunjuk pada<select>
tag yang diinginkan , misalnya melalui yang berikut:Catatan 1 - gunakan val () untuk kecocokan nilai:
Untuk pencocokan nilai, menggunakan
val()
jauh lebih sederhana daripada menggunakan pemilih atribut: https://jsfiddle.net/yz7tu49b/6/Versi setter
.val()
diterapkan padaselect
tag dengan mengaturselected
properti yang cocokoption
dengan yang samavalue
, jadi berfungsi dengan baik di semua browser modern.Catatan 2 - gunakan properti ('terpilih', benar):
Jika Anda ingin mengatur keadaan opsi yang dipilih secara langsung, Anda dapat menggunakan
prop
(bukanattr
) denganboolean
parameter (daripada nilai teksselected
):mis. https://jsfiddle.net/yz7tu49b/
Catatan 3 - memungkinkan untuk nilai yang tidak diketahui:
Jika Anda menggunakan
val()
untuk memilih<option>
, tetapi val tidak cocok (mungkin terjadi tergantung pada sumber nilai), maka "tidak ada" dipilih dan$select.val()
akan kembalinull
.Jadi, untuk contoh yang ditunjukkan, dan demi ketahanan, Anda dapat menggunakan sesuatu seperti ini https://jsfiddle.net/1250Ldqn/ :
Catatan 4 - kecocokan teks yang tepat:
Jika Anda ingin mencocokkan dengan teks yang tepat, Anda dapat menggunakan
filter
fungsi with. mis. https://jsfiddle.net/yz7tu49b/2/ :meskipun jika Anda memiliki spasi putih tambahan, Anda mungkin ingin menambahkan trim ke cek seperti pada
Catatan 5 - cocok dengan indeks
Jika Anda ingin mencocokkan berdasarkan indeks, cukup indeks anak-anak yang terpilih misalnya https://jsfiddle.net/yz7tu49b/3/
Meskipun saya cenderung menghindari properti DOM langsung yang mendukung jQuery saat ini, untuk kode bukti masa depan, sehingga juga dapat dilakukan sebagai https://jsfiddle.net/yz7tu49b/5/ :
Catatan 6 - gunakan perubahan () untuk menjalankan seleksi baru
Dalam semua kasus di atas, acara perubahan tidak menyala. Ini adalah desain sehingga Anda tidak berakhir dengan acara perubahan rekursif.
Untuk menghasilkan acara perubahan, jika perlu, tambahkan saja panggilan ke objek
.change()
jQueryselect
. misalnya contoh paling sederhana pertama menjadi https://jsfiddle.net/yz7tu49b/7/Ada juga banyak cara lain untuk menemukan elemen menggunakan pemilih atribut, seperti
[value="SEL2"]
, tetapi Anda harus ingat pemilih atribut relatif lambat dibandingkan dengan semua opsi lainnya.sumber
Anda bisa memberi nama pilih dan gunakan ini:
Ini harus memilih opsi yang Anda inginkan.
sumber
sumber
Menjawab pertanyaan saya sendiri untuk dokumentasi. Saya yakin ada cara lain untuk mencapai ini, tetapi ini berhasil dan kode ini diuji.
sumber
Tepatnya akan berhasil coba metode di bawah ini
sumber
Menggunakan jquery-2.1.4 , saya menemukan jawaban berikut ini berfungsi untuk saya:
Jika Anda memiliki nilai string, cobalah yang berikut ini:
Contoh lain tidak berfungsi untuk saya jadi itu sebabnya saya menambahkan jawaban ini.
Saya menemukan jawaban asli di: https://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu
sumber
Untuk menetapkan nilai pilih dengan memicu dipilih:
Untuk opsi pengaturan dari ruang lingkup:
Kode ini menggunakan pemilih untuk mengetahui objek yang dipilih dengan kondisi, lalu ubah atribut yang dipilih oleh
attr()
.Lebih lanjut, saya sarankan untuk menambahkan
change()
acara setelah mengatur atributselected
, dengan melakukan ini kode akan menutup untuk mengubah pilih oleh pengguna.sumber
Saya menggunakan ini, ketika saya tahu indeks daftar.
Ini memungkinkan daftar untuk berubah, dan menjalankan acara perubahan. ": Nth (n)" dihitung dari indeks 0
sumber
saya akan pergi dengan: -
sumber
Coba ini
Anda cukup menggunakan id bidang pilih alih-alih #id (mis. # select_name)
bukannya nilai opsi menggunakan pilih opsi Anda nilai
sumber
Untuk Jquery dipilih jika Anda mengirim atribut berfungsi dan perlu memperbarui-pilih opsi
sumber
sumber
The
$('select').val('the_value');
tampak solusi yang tepat dan jika Anda memiliki tabel data baris maka:sumber
jika Anda tidak ingin menggunakan jQuery, Anda dapat menggunakan kode di bawah ini:
sumber
Terima kasih untuk pertanyaannya. Semoga kode ini akan bekerja untuk Anda.
sumber
atau
sumber