gpt4 book ai didi

javascript - 如何将动态 JSON 数组输出到 HTML 表中?

转载 作者:行者123 更新时间:2023-12-01 01:06:50 26 4
gpt4 key购买 nike

我有一个在按下按钮时调用的函数,并将其添加到数组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 个另一项,则订单可能如下所示:

[{"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 表看起来相当笨重。谢谢

最佳答案

您可以使用 map

HTML:

<table>
<thead>
<tr>
<th>Item</th>
<th>Quantity</th>
</thead>
<tbody id="test">

</tbody>
</table>

JS:

const order = [
{ id: 1, name: "Hawaiian", price: 10, qty: 2 },
{ id: 2, name: "New Yorker", price: 10, qty: 1 }
];

const singleRow = ({ name, qty }) => `<tr><td>${name}</td><td>${qty}</td></tr>`;
$("#test").html(order.map(singleRow).join(''));

https://codepen.io/anon/pen/MReZdL

关于javascript - 如何将动态 JSON 数组输出到 HTML 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55550870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com