Як найкраще додати опції у вибірку як JS-об'єкт за допомогою jQuery?
Який найкращий метод додавання опцій до <select>
з об'єкту JavaScript з використанням jQuery?
Я шукаю щось, для чого мені не потрібен плагін, але я також був би зацікавлений у плагінах, які існують.
Ось що я зробив:
selectValues = { "1": "test 1", "2": "test 2" };
for (key in selectValues) {
if (typeof (selectValues[key] == 'string') {
$('#mySelect').append('<option value="' + key + '">' + selectValues[key] + '</option>');
}
}
Чисте/просте рішення:.
Це очищена та спрощена версія matdumsa's:
$.each(selectValues, function(key, value) {
$('#mySelect')
.append($('<option>', { value : key })
.text(value));
});
Зміни від matdumsa's: (1) видалено тег close для опції всередині append() та (2) переміщено властивості/атрибути у карту як другий параметр append().
1339
3
Так само, як і інші відповіді, в стилі jQuery:
Якщо вам не потрібно підтримувати старі версії IE, використання конструктора
Option
- це, безумовно, правильний шлях, читабельне та ефективне рішення:За функціональністю воно еквівалентне, але чистіше:
Я зробив щось подібне, завантаження випадаючого списку через Ajax. Відповідь, наведена вище, також є прийнятною, але завжди добре мати якомога менше модифікацій DOM для кращої продуктивності.
Тому замість того, щоб додавати кожен елемент всередині циклу, краще збирати елементи всередині циклу і додавати його після завершення.
Додати,
або ще краще