Apa cara termudah untuk menambahkan option
dropdown menggunakan jQuery?
Akankah ini berhasil?
$("#mySelect").append('<option value=1>My option</option>');
javascript
jquery
Klik Upvote
sumber
sumber
$("#mySelect").html(....)
untuk mengganti opsi saat ini dengan yang baru.Jawaban:
Ini TIDAK bekerja di IE8 (belum di FF):
DID ini berfungsi:
sumber
display: table;
juga TIDAK diterapkan sebagai gaya pada elemen-pilih. Ini akan memecahkan kode jsvar o = new Option('option text', 'value'); o.innerHTML = 'option text'; document.getElementById('selectList').appendChild(o);
Secara pribadi, saya lebih suka sintaks ini untuk opsi menambahkan:
Jika Anda menambahkan opsi dari koleksi item, Anda dapat melakukan hal berikut:
sumber
items={option1:{value:1,text:1},option2:{value:2,text:2}}
Anda dapat menambahkan opsi menggunakan sintaks berikut, Anda juga dapat mengunjungi cara menangani opsi di jQuery untuk detail lebih lanjut.
sumber
value
bukanval
). Kode yang benar harus$('select').append('<option value="1">One</option>');
Jika nama opsi atau nilainya dinamis, Anda tidak perlu khawatir untuk keluar dari karakter khusus di dalamnya; dalam hal ini Anda mungkin lebih suka metode DOM sederhana:
sumber
Pilihan 1-
Anda dapat mencoba ini-
Seperti ini-
Pilihan 2-
Atau coba ini-
Seperti ini-
sumber
Ini sangat sederhana:
atau
sumber
Itu bekerja dengan baik.
Jika menambahkan lebih dari satu elemen opsi, saya sarankan melakukan append satu kali daripada melakukan append pada setiap elemen.
sumber
untuk alasan apa pun melakukan
$("#myselect").append(new Option("text", "text"));
tidak bekerja untuk saya di IE7 +Saya harus menggunakan
$("#myselect").html("<option value='text'>text</option>");
sumber
Untuk membantu kinerja, Anda harus mencoba hanya mengubah DOM sekali, terlebih lagi jika Anda menambahkan banyak opsi.
sumber
string.join()
untuk string gabungansumber
selectmenu()
bukan bagian dari inti jQuery dan merupakan widget jQueryUI . Itu membuatnya menjadi solusi yang cukup berat, bukan?Saya suka menggunakan pendekatan non jquery:
sumber
Anda dapat menambahkan opsi secara dinamis ke dalam dropdown seperti yang ditunjukkan pada contoh di bawah ini. Di sini, dalam contoh ini saya telah mengambil data array dan mengikat nilai array tersebut ke dropdown seperti yang ditunjukkan pada tangkapan layar keluaran
Keluaran:
sumber
Tidak disebutkan dalam jawaban apa pun tetapi bermanfaat jika Anda ingin opsi itu juga dipilih, Anda dapat menambahkan:
sumber
sumber
Ada dua cara. Anda dapat menggunakan salah satu dari keduanya.
Pertama:
Kedua:
sumber
Jika Anda ingin memasukkan opsi baru pada indeks tertentu di pilih:
Ini akan memasukkan "Item Baru" sebagai item ke-3 di pilih.
sumber
Anda dapat menambahkan dan mengatur atribut Nilai dengan teks:
sumber
Kami menemukan beberapa masalah ketika Anda menambahkan opsi dan menggunakan validasi jquery. Anda harus mengklik satu item di beberapa daftar pilih. Anda akan menambahkan kode ini untuk menangani:
sumber
sumber
Ini hanyalah poin cepat untuk kinerja terbaik
selalu ketika Anda berhadapan dengan banyak opsi, membangun string besar dan kemudian menambahkannya ke 'pilih' untuk kinerja terbaik
fg
var $ mySelect = $ ('# mySelect'); var str = '';
Bahkan lebih cepat
sumber
Jika Anda mendapatkan data dari beberapa objek, maka teruskan objek itu berfungsi ...
Nama dan Id adalah nama properti objek ... sehingga Anda dapat memanggil mereka apa pun yang Anda suka ... Dan tentu saja jika Anda memiliki Array ... Anda ingin membangun fungsi kustom dengan for loop ... dan kemudian panggil saja fungsi itu di siap dokumen ... Ceria
sumber
Berdasarkan jawaban dule untuk menambahkan koleksi item, one-liner
for...in
juga akan bekerja dengan sangat baik:Nilai objek dan indeks ditugaskan untuk opsi. Solusi ini berfungsi bahkan di jQuery lama (v1.4) !
sumber
jika Anda memiliki optgroup di dalam pilih , Anda mendapat kesalahan dalam DOM.
Saya pikir cara terbaik:
sumber
Anda dapat mencoba kode di bawah ini untuk menambahkan opsi
sumber
sumber
Ini adalah cara saya melakukannya, dengan tombol untuk menambahkan setiap tag pilih.
sumber
$(document).ready(function(){ $("#button").click(function() { $('#id_table_AddTransactions').append('<option></option>'); }); });
Anda dapat melakukan ini di ES6:
sumber
Jika seseorang datang ke sini mencari cara untuk menambahkan opsi dengan properti data
Menggunakan attr
Menggunakan data - versi ditambahkan 1.2.3
sumber