解释
您想要的是用您的 JavaScript 填充 HTML 中的表格(或另一个 DOMElement),一旦加载页面并接收到您的 JSON 对象,该 JavaScript 就会动态执行。
您想遍历对象。最好的方法是使用for
循环,并确保我们的循环变量在对象的长度(所有属性)内保持有效。
获取 JSON 对象长度的最佳方法是通过myJSONObject.length
:您选择myJSONObject的键并返回它们的计数。
您可以在for
循环中通过以下方式访问存储在 JSON 对象中的值(假设定义的循环变量为 named i
):myJSONObject[i].theAttributeIWantToGet
价格格式细分
现在,这些价格需要有适当的格式,不是吗?因此,我们将检查是否有任何value
属性在它们之后的字符数少于 2.
个。如果他们这样做,我们添加另一个小数0
。我们还在$
写入格式化值之前添加了一个。以下是其工作原理的细分:
另外: 为什么我使用innerHTML
而不是appendChild()
.
解决方案
HTML
<table>
<tbody id="tbody"></tbody>
</table>
JSON
[{
"key": "apple",
"value": 1.90
}, {
"key": "berry",
"value": 1.7
}, {
"key": "banana",
"value": 1.5
}, {
"key": "cherry",
"value": 1.2
}]
JavaScript
注意: JSON 对象将obj
在此实例中命名。
var tbody = document.getElementById('tbody');
for (var i = 0; i < obj.length; i++) {
var tr = "<tr>";
/* Verification to add the last decimal 0 */
if (obj[i].value.toString().substring(obj[i].value.toString().indexOf('.'), obj[i].value.toString().length) < 2)
obj[i].value += "0";
/* Must not forget the $ sign */
tr += "<td>" + obj[i].key + "</td>" + "<td>$" + obj[i].value.toString() + "</td></tr>";
/* We add the table row to the table body */
tbody.innerHTML += tr;
}