Конечно - создайте options
массив строк и используйте его .join('')
вместо +=
каждого цикла. Небольшое снижение производительности при работе с большим количеством опций ...
var options = [];
$.getJSON("/Admin/GetFolderList/", function(result) {
for (var i = 0; i < result.length; i++) {
options.push('<option value="',
result[i].ImageFolderID, '">',
result[i].Name, '</option>');
}
$("#theSelect").html(options.join(''));
});
Да. Я все еще работаю со строками все время. Верьте или нет, это самый быстрый способ создания фрагмента DOM ... Теперь, если у вас есть только несколько вариантов, это не будет иметь большого значения - используйте технику, которую демонстрирует Dreas, если вам нравится стиль. Но имейте в виду, что вы вызываете внутреннее время HTML-анализатора браузера i*2
, а не один раз, и модифицируете DOM каждый раз в цикле ... с достаточным количеством опций. Вы будете платить за это, особенно в старых браузерах.
Примечание: как указывает Правосудие, это развалится, если ImageFolderID
и Name
не будет правильно закодировано ...
<option/>
элемент вместо того, чтобы создавать каждый?