说明
您想使用JavaScript在HTML中填充表格(或其他DOM元素),这是在页面加载时动态执行且收到JSON对象的情况下完成的。
您想要循环处理对象。最好的方法是使用for
循环,并确保我们的循环变量对于对象的所有属性(其长度)仍然有效。
获取JSON对象的长度的最佳方法是通过myJSONObject.length
:选择myJSONObject的键并返回它们的计数。
您可以在for
循环中以以下方式访问存储在JSON对象中的值(假设定义的循环变量命名为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>";
if (obj[i].value.toString().substring(obj[i].value.toString().indexOf('.'), obj[i].value.toString().length) < 2)
obj[i].value += "0";
tr += "<td>" + obj[i].key + "</td>" + "<td>$" + obj[i].value.toString() + "</td></tr>";
tbody.innerHTML += tr;
}
$.parseJSON(json..)
,然后遍历数组的每个元素,并将适当的值附加到适当的位置。 - Kamil