Если ваши данные представляют собой массив объектов, вы можете выполнить итерацию по ним для генерации HTML до вставки в DOM. *
Здесь я использовал вспомогательная функция для генерации HTML каждой карты отдельного человека (personCardHtml
). Он возвращает шаблонный литерал , который заполняет данные человека в правильном месте в HTML.
Я использовал Array.reduce в массиве people
для генерации одной строки HTML из всех карточек персонажа вместе.
Затем я использовал insertAdjacent HTML, чтобы вставить это html строка в <div id="persons-container"></div>
const people = [{"name": "Henrietta Marsh","state": "Northern Mariana Islands","city": "Ernstville","zip": 7226},{"name": "Sandy Copeland","state": "Wyoming","city": "Hobucken","zip": 4594},{"name": "Logan Frank","state": "Puerto Rico","city": "Talpa","zip": 8670}]
const personCardHtml = (person) => {
return `<div class="card-body">
<!-- person -->
<div class="row" id="img_div">
<div class="col-12 col-sm-12 col-md-2 text-center"><img src="http://placehold.it/120x80?text=${person.name}" alt="prewiew" width="120" height="80"></div>
<div id="text_div" class="col-12 text-sm-center col-sm-12 text-md-left col-md-6">
<h4 class="product-name"><strong>${person.name}</strong></h4>
<h4><small>${person.state}</small></h4>
<h4><small>${person.city}</small></h4>
<h4><small>${person.zip}</small></h4>
</div>
</div>
<!-- END person -->`
}
const reducer = (accumulator, currentValue) => accumulator + personCardHtml(currentValue);
const personsHtml = people.reduce(reducer, '')
const container = document.querySelector('#persons-container')
container.insertAdjacentHTML('beforeend', personsHtml);
<div id="persons-container"></div>
* Рекомендуется свести к минимуму манипуляции с DOM, если вы хотите, чтобы ваша страница работала.