Contoh yang saya lihat diposting sepanjang waktu sepertinya itu kurang optimal, karena melibatkan string merangkai, yang tampaknya jadi bukan jQuery. Biasanya terlihat seperti ini:
$.getJSON("/Admin/GetFolderList/", function(result) {
for (var i = 0; i < result.length; i++) {
options += '<option value="' + result[i].ImageFolderID + '">' + result[i].Name + '</option>';
}
});
Apakah ada cara yang lebih baik?
<option/>
elemen daripada membuat masing-masing?Apa yang saya lakukan di atas adalah membuat
<option>
elemen baru dan menambahkannya keoptions
daftar (dengan asumsioptions
adalah ID dari elemen drop down.PS Javascript saya agak berkarat sehingga sintaksisnya mungkin tidak sempurna
sumber
Tentu - membuat
options
array string dan gunakan.join('')
daripada+=
setiap kali melalui loop. Lonjakan performa sedikit ketika berhadapan dengan sejumlah besar opsi ...Iya. Saya masih bekerja dengan string sepanjang waktu. Percaya atau tidak, itu adalah cara tercepat untuk membangun sebuah fragmen DOM ... Sekarang, jika Anda hanya memiliki beberapa pilihan, itu tidak akan menjadi masalah - gunakan teknik yang ditunjukkan Dreas jika Anda suka gaya tersebut. Namun perlu diingat, Anda menggunakan waktu parser HTML internal browser
i*2
, bukan hanya sekali, dan memodifikasi DOM setiap kali melalui loop ... dengan sejumlah opsi yang cukup. Anda akhirnya akan membayar untuk itu, terutama di browser lama.Catatan: Seperti yang ditunjukkan keadilan, ini akan berantakan jika
ImageFolderID
danName
tidak dikodekan dengan benar ...sumber
result[i].ImageFolderID
danresult[i].Name
sebagai html-atribut-nilai dan html-teks masing-masing. Saya tidak akan berasumsi mereka datang dari server yang sudah disandikan, karena saya akan berasumsi bahwa server mengembalikan json, bukan json bastardized.join
di hampir setiap browser.Atau mungkin:
sumber
Cara tercepat adalah ini:
Menurut tautan ini adalah cara tercepat karena Anda membungkus semuanya dalam satu elemen ketika melakukan segala jenis penyisipan DOM.
sumber
Saya menemukan ini berfungsi dari situs jquery
sumber
Saya pernah membaca bahwa menggunakan fragmen dokumen adalah performan karena ia menghindari reflow halaman pada setiap penyisipan elemen DOM, itu juga didukung oleh semua browser (bahkan IE 6).
Saya pertama kali membaca tentang ini dalam kursus Praktik Terbaik JavaScript CodeSchool .
Berikut perbandingan berbagai pendekatan , terima kasih kepada penulis.
sumber
result.forEach(function(el){var option=document.createElement('option').option.textContent=el.name;option.value=el.ImageFolderID);fragment.appendChild(el);
Pendekatan lain dengan ES6
sumber
Saya menggunakan plugin jquery selectboxes . Ini mengubah contoh Anda menjadi:
sumber
sumber
Saya harap ini membantu. Saya biasanya menggunakan fungsi alih-alih menulis semua kode setiap kali.
sumber
sumber
di sini adalah contoh saya lakukan pada perubahan saya mendapatkan anak-anak dari pilih pertama di pilih kedua
});
enter code here
sumber
Saya telah menggunakan jQuery dan memanggil fungsi untuk mengisi drop down.
sumber
sumber
Di bawah ini adalah cara Jquery mengisi daftar turun bawah yang idnya "FolderListDropDown"
sumber