Claro: haga options
una serie de cadenas y use .join('')
en lugar de +=
cada vez que pase el ciclo. Ligero golpe rendimiento cuando se trabaja con un gran número de opciones ...
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(''));
});
Sí. Todavía estoy trabajando con cuerdas todo el tiempo. Créalo o no, esa es la forma más rápida de construir un fragmento de DOM ... Ahora, si tiene pocas opciones, no importará: use la técnica Dreas demonstrates si le gusta el estilo. Pero tenga en cuenta que está invocando el analizador HTML interno del navegador i*2
veces, en lugar de una sola vez, y modificando el DOM cada vez a través del bucle ... con un número suficiente de opciones. terminará pagándolo, especialmente en navegadores más antiguos.
Nota: Como señala Justicia, esto se vendrá abajo si ImageFolderID
Name
y no son encoded properly ...
La historia antigua aquí lo sé, pero para los googlers como yo, que acabo de tropezar con esto ahora, ¿no sería aún más rápido si clonas un elemento '' en lugar de crear cada uno? – tedders
No lo creo ... de cualquier forma va a instanciar un nuevo artículo. – quillbreaker
¡Agradable! Aunque creo que el ejemplo podría ser más claro si el elemento se denominó "#downdown" o más, ya que refleja mejor el elemento padre real de las opciones. – Anders