У меня есть функция, которая вызывается при нажатии кнопки и добавляет к массиву order
:
var order = [];
function updateCart(item) {
var index = order.findIndex(i => i.id == item.id);
if (index != -1) {
order.splice(index, 1);
order.push(item);
} else {
order.push(item);
}
$("#test").html(JSON.stringify(order));
}
Если пользователь добавляет 2 из одного элемента и 1 из другого элемента, тогда order
можетвыглядит так:
[{"id":1,"name":"Hawaiian","price":10,"qty":2},
{"id":2,"name":"New Yorker","price":10,"qty":1}];
Я хотел бы иметь возможность циклически проходить по каждому элементу в массиве и иметь таблицу HTML, которая может отображать каждый заказ в удобном для чтения виде.Например:
<table>
<thead>
<tr>
<th>Item</th>
<th>Quantity</th>
</tr>
</thead>
<tbody>
<tr>
<td>order[0].name</td>
<td>order[0].qty</td>
</tr>
<tr>
<td>order[1].name</td>
<td>order[1].qty</td>
</tr>
</tbody>
</table>
Если я передам массив в свою таблицу, то он просто заменит всю таблицу и не передаст значения туда, где я указал.См. Мой пример ниже:
<script>
$("#test").html(JSON.stringify(order));
</script>
<table id="myTable">
<thead>
<tr>
<th>Item</th>
<th>Quantity</th>
</tr>
</thead>
<tbody>
<script>
for (var i = 0; i < order.length; i++) {
document.write("<tr>");
document.write("<td>");
document.write(order[i].name);
document.write("</td>");
document.write("</tr>");
}
</script>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
Мне интересно, есть ли более простой способ сделать то, что я хочу.Таблицы HTML DOM кажутся довольно неуклюжими.Спасибо