gpt4 book ai didi

javascript - 如何使用 Javascript 循环遍历数组并更改和添加额外的 HTML,以输出带有这些值的一些文本?

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

例如,我正在使用一个返回 JSON 值数组的 API,我想将它们输出到页面。

Here is the full code I am working with如果有人想尝试一下,看看我可以在哪里让它发挥作用。

我已经为单击按钮时想要输出的值的布局创建了一些 HTML,如下所示:

<p class="txData"> 
<p id="txHash">Transaction ID: </p><br>
<p id="txTime">Time: </p><br>
<p id="txToken">Token Symbol: </p><br>
<p id="txTo">To: </p><br>
<p id="txFrom">From: </p><br>
<p id="txValue">Amount Transferred: </p><br>
<p>***********************************</p><br>
</p>

然后,我为要附加的那些元素分配变量:

        let txHash = document.querySelector('#txHash');
let txTime = document.querySelector('#txTime');
let txToken = document.querySelector('#txToken');
let txTo = document.querySelector('#txTo');
let txFrom = document.querySelector('#txFrom');
let txValue = document.querySelector('#txValue');

我通过执行以下操作附加从 API 检索到的值: txHash.insertAdjacentHTML('beforeend', jsonFile.result[0].hash);

                txTime.insertAdjacentHTML('beforeend', jsonFile.result[0].timeStamp);

txToken.insertAdjacentText('beforeend', jsonFile.result[0].tokenSymbol)

txTo.insertAdjacentHTML('beforeend', jsonFile.result[0].to);

txFrom.insertAdjacentHTML('beforeend', jsonFile.result[0].from);

txValue.insertAdjacentHTML('beforeend', web3.utils.fromWei(jsonFile.result[0].value, 'ether'));

这可以输出第一个事务(索引 [0])所需的值。

我如何创建一个基本上在开始时使用模板 HTML 的循环,然后将其输出到数组中的下 5 个元素,以便它是以相同格式输出的每个新 trasanction 的详细信息,但不包含必须编码 5 次吗?

我是 HTML 和 Javascript 新手,非常感谢任何帮助。谢谢。

最佳答案

第一条建议,如果您还不知道的话,如果您打算使用静态 id 来显示列表,则应该避免在 html 模板中使用静态 id,因为 id 在单个 html 页面中必须是唯一的。

第二,您应该使用一个框架来帮助您将数据显示为列表。如果你知道 Angular 或 React 等著名的。您还可以按照某人的建议使用 jQuery。

这是一个使用 VueJS 的小示例,它允许您使用 html 模板定义组件。然后,您可以通过 for 指令在循环中使用它们(请注意,我不是 VueJS 专家,您可能会找到更好的解决方案):

<body>
<div id="app">
<div v-for="json in jsonFile">
<data-display v-bind:json="json"></data-display>
</div>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script type="text/javascript">

var DataDisplay = {
props: ['json'],
template: '<div class="txData">\
<p>Transaction ID: {{json.hash}}</p>\
<p id="txTime">Time: {{json.timeStamp}}</p>\
<p id="txToken">Token Symbol: {{json.tokenSymbol}}</p>\
<p id="txTo">To: {{json.to}}</p>\
<p id="txFrom">From: {{json.from}}</p>\
<p id="txValue">Amount Transferred: {{json.value}}</p>\
<p>***********************************</p>\
</div>'
};

var vm = new Vue({
el: "#app",
data: {
jsonFile: [
{
hash: 'hash1',
timeStamp: 'timestamp1',
tokenSymbol: 'token1',
to: 'to1',
from: 'from1',
value: 'value1'
}, {
hash: 'hash2',
timeStamp: 'timestamp2',
tokenSymbol: 'token2',
to: 'to2',
from: 'from2',
value: 'value2'
}
]
},
components: {
'data-display': DataDisplay
}
});
</script>
</body>

示例使用的文档:

关于javascript - 如何使用 Javascript 循环遍历数组并更改和添加额外的 HTML,以输出带有这些值的一些文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51632113/

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