我尝试使用两个数组来填充每个语句,而不是为每个属性写出20次。
这就是我的想法。这里的想法是获取数据(存储在mainData
中)。我需要这些数据中的一些对象,所以我将它们放在一个数组中($dataPoints
)。我将所有这些数据附加到表格中。我将数据添加到具有特定id
s的特定行(存储在$tableIds
中)。
因此,$dataPoints
中的每个项目的基本思路都是查找数据的那一部分并将其附加到id
所指示的位置的表格中的相同位置在数组中。像这样......
var $dataPoints = ['name','description','subtitle'];
var $tableIds = ['mNames','mDescription','mSubtitle'];
$.each($dataPoints, function(index, val) {
$.each(mainData.val[index].source_values, function(index, val) {
$("#matrix_datatable").find('#'+$tableIds[index])
.append($('<td class="tableCells">')
.append(val.value + '</td>')
)
});
});
然而,这一行:
$.each(mainData.val[index].source_values, function(index, val) {
正在抛出错误:
未捕获的TypeError:无法读取属性&#39; 0&#39;未定义的
我在这里缺少什么?有更简单的方法吗?
编辑:请注意,这非常有效。
$.each(mainData.subtitle.source_values, function(index, val) {
$("#matrix_datatable").find('#mSubtitle')
.append($('<td class="tableCells">')
.append(val.value + '</td>')
)
});
但是,我不想为mainData
内的20个不同对象写出来。
答案 0 :(得分:0)
看起来你可能意味着:
mainData[val][index].source_values
写mainData.val
字面上会在val
中查找关键mainData
。