Если вы хотите добавить несколько карт одного и того же контента, вы можете создать общий шаблон для одной карты в javascript и добавить несколько этих карт в контейнерную ячейку.
Если вы хотите добавить несколько делений одного и того же содержимого при нажатии кнопки, сгенерируйте строку вне события click с помощью цикла for, а затем добавьте сгенерированную строку.
Здесь я назвалконтейнер div .content
.Также обратите внимание, что каждый элемент должен иметь уникальный идентификатор, поэтому идентификаторы не должны повторяться.
См. Рабочий пример ниже:
let card =
`<div class="card">
<img src="https://cdn.sstatic.net/Sites/stackoverflow/img/apple-touch-icon@2.png?v=73d79a89bded" class="card_img" alt="result image">
<h4>OFFLINE</h4>
<p>Yes!!</p>
</div>`;
let amount = 10; // amount of cards to add on button click
let toAppend = '';
for(let i = 0; i < amount; i++) {
toAppend += card;
}
$("#search").click(function() {
$('.content').empty().append(toAppend);
});
img {
height: 150px;
width: 150px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="content"></div>
<button id="search" class="btn" value="Search">Click me</button>
В соответствии с вашим отредактированным вопросом:
массив данных с использованием .reduce
и создание строки из отдельных элементов div с использованием литералов шаблона и уничтожения .После этого вы можете добавить этот созданный div к вашему телу или div (здесь я добавил его к div с классом content
)
let data = [{
"name": "Malkov Chicken",
"location": "New york",
"meals": 5,
"close_time": 1567289876354
},
{
"name": "Delicious Chops",
"location": "San francisco",
"meals": 15,
"close_time": 1567289876354
},
{
"name": "Banana cultshop",
"location": "New york",
"meals": 8,
"close_time": 1567289876354
}
];
let html = data.reduce((acc, {name,location, meals, close_time: close}) =>
acc += `
<div class='item'>
<p>${name}</p>
<p>${location}</p>
<p>${meals}</p>
<p>${close}</p>
</div>`
, ``);
$('.content').append(html);
.item {
border: 1px solid black;
margin: 10px 0;
}
p {
margin: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="content"></div>