我有一个这种结构的JSON:
diferencias = {
"1": {
"1": 543.0,
"0": 542.0
},
"2": {
"0 1": 0.3333333333333333
}
}
我需要获取一个外键作为列的表。
我写了以下代码:
$("#pinchetabla").empty()
var tr = ""
for (d in diferencias) {
var r = ''
for (dd in d) {
//console.log(dd)
r += '<tr>' + 'f[' + diferencias.dd + ']=' + diferencias.d.dd + '</tr>'
}
tr += r
}
var table = "<table id='resultados' class='table table-condensed'>" + tr + "</table>"
$("#pinchetabla").append(table)
我已经关注jsfiddle
了 pinchetabla
是div
的位置。但是,我甚至无法正确访问JSON密钥和值。我错过了什么?
答案 0 :(得分:3)
当您使用dot notation访问属性时,object.propertyname
,JavaScript会在propertyname
中查找object
。在您的情况下,d
和dd
仅仅是object
中的关键字,但JavaScript会在diferencias
中查找它们而无法找到它们。
为了动态访问属性,您必须使用subscript/bracket notation,就像这样
r += '<tr>' + 'f[' + d + ']=' + diferencias[d][dd] + '</tr>';
for循环也应该像这样
for (dd in diferencias[d]) {
您的表格创建代码可以像这样修复
var tr = "";
for (d in diferencias) {
var r = '<tr>';
for (dd in diferencias[d]) {
r += '<td>' + 'f[' + d + ']=' + diferencias[d][dd] + '</td>';
}
tr += r + '</tr>';
}
答案 1 :(得分:1)
一些问题。
for(dd in diferencias[d])
<td>
个标签。var tr
)tr += r
醇>