Puede hacerlo de esta manera por iteración a través de la matriz en un bucle, acumulando el nuevo HTML en su propia matriz y luego unirse al HTML todos juntos e insertándolo en el DOM al final:
var array = [...];
var newHTML = [];
for (var i = 0; i < array.length; i++) {
newHTML.push('<span>' + array[i] + '</span>');
}
$(".element").html(newHTML.join(""));
Algunas personas prefieren utilizar .each()
método en lugar del bucle for
de jQuery que funcionaría así:
var array = [...];
var newHTML = [];
$.each(array, function(index, value) {
newHTML.push('<span>' + value + '</span>');
});
$(".element").html(newHTML.join(""));
O porque la salida de la iteración matriz es en sí una matriz con un elemento derivado de cada elemento de la fre matriz final, jQuery de .map
se puede utilizar como esto:
var array = [...];
var newHTML = $.map(array, function(value) {
return('<span>' + value + '</span>');
});
$(".element").html(newHTML.join(""));
que se debe utilizar es una elección personal, dependiendo de su estilo de codificación preferido, la sensibilidad al rendimiento y la familiaridad con .map()
. Supongo que el bucle for
sería el más rápido, ya que tiene menos llamadas de función, pero si el rendimiento fuera el criterio principal, entonces tendría que comparar las opciones para medir realmente.
FYI, en las tres opciones, el HTML se acumula en una matriz, luego se unen al final y se insertan en el DOM a la vez. Esto se debe a que las operaciones DOM suelen ser la parte más lenta de una operación como esta, por lo que es mejor minimizar el número de operaciones DOM por separado. Los resultados se acumulan en una matriz porque agregar elementos a una matriz y luego unirlos al final suele ser más rápido que agregar cadenas a medida que avanza.
Y, si se puede vivir con IE9 o por encima (o instalar un polyfill ES5 para .map()
), puede utilizar la versión de serie de .map
así:
var array = [...];
$(".element").html(array.map(function(value) {
return('<span>' + value + '</span>');
}).join(""));
Nota: esta versión también se deshace de la variable intermedia newHTML
en aras de la compacidad.
array.join (','); – Pheonix