- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,我正在使用一个返回 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/
我是一名优秀的程序员,十分优秀!