使用变量嵌套每个语句

时间:2017-08-03 14:20:36

标签: javascript jquery

我尝试使用两个数组来填充每个语句,而不是为每个属性写出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个不同对象写出来。

1 个答案:

答案 0 :(得分:0)

看起来你可能意味着:

mainData[val][index].source_values

mainData.val字面上会在val中查找关键mainData