Без использования дополнительных плагинов,
var myOptions = {
val1 : 'text1',
val2 : 'text2'
};
var mySelect = $('#mySelect');
$.each(myOptions, function(val, text) {
mySelect.append(
$('<option></option>').val(val).html(text)
);
});
Если у вас было много опций, или этот код нужно было запускать очень часто, то вам следует рассмотреть возможность использования DocumentFragment вместо ненужного изменения DOM много раз. Только для нескольких вариантов я бы сказал, что оно того не стоит.
------------------------------- Добавлено --------------- -----------------
DocumentFragment
- хороший вариант для повышения скорости, но мы не можем создать элемент option, используя document.createElement('option')
, так как IE6 и IE7 его не поддерживают.
Что мы можем сделать, это создать новый элемент выбора и затем добавить все параметры. По завершении цикла добавьте его к реальному объекту DOM.
var myOptions = {
val1 : 'text1',
val2 : 'text2'
};
var _select = $('<select>');
$.each(myOptions, function(val, text) {
_select.append(
$('<option></option>').val(val).html(text)
);
});
$('#mySelect').append(_select.html());
Таким образом, мы изменим DOM только один раз!