Получаю данные о пользователях в JSON.
Задача обработать и выводить данные каждого пользователя в отдельном html блоке по порядку.
В данный момент вывод данных реализован примерным образом
$('.text').append('<div class='user_name'><span>' + user.name+ '</span><div>');
Т.к. подобным способом нужно будет вставлять приличное количество тегов html, решение не самое удачное.
Если ли способ написания шаблона html блока и при каждом новом пользователе
вставлять его и заполнять нужными данными?
Можно так:
// сразу создаем шаблон
var span = document.createElement( 'span' );
var div = document.createElement( 'div' );
div.className = 'user_name';
div.appendChild( span );
// глубоко клонируем элемент и устанавливаем имя - это быстрее чем создание новых элементов
function item ( name ) {
var n = div.cloneNode( true );
n.firstElementChild.textContent = name;
return n;
}
// пользователи
var user = [ 'Вася', 'Петя', 'Маша' ];
var list = document.getElementById( 'list' );
user.forEach( function( i ){
list.appendChild( item ( i ) );
});
<div id="list"></div>
Как самый тривиальный вариант:
function generateUserHtmlBlock(user) {
return "<div class='user_name'><span>" + user.name + "</span><div>";
}
$.ajax({
...,
success: function(users) {
for (var i = 0; i < users.length; i++) {
$('.text').append(generateUserHtmlBlock(users[i]));
}
}
})
Советую посмотреть в сторону компонентного подхода.
Продвижение своими сайтами как стратегия роста и независимости