2017-08-03 99 views
-1

我想使用兩個數組填充每個語句的幾個,而不是寫出每個屬性20次。使用變量嵌套每個語句

這就是我的想法。這裏的想法是獲取數據(存儲在mainData)。我需要這些數據的一些對象,所以我把它們放在一個數組中($dataPoints)。我將所有這些數據都附加到表格中。我將數據添加到特定的行中,具體爲id(存儲在$tableIds)。

因此,對於$dataPoints中的每個項目,請查找該部分數據,並將其附加到表格中id s所指示的位置,並放在陣列中相同的位置。是這樣的...

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) { 

拋出一個錯誤:

Uncaught TypeError: Cannot read property '0' of undefined

缺少什麼我在這裏?有沒有更簡單的方法來做到這一點?

編輯:請注意,這完美的作品。

$.each(mainData.subtitle.source_values, function(index, val) { 
    $("#matrix_datatable").find('#mSubtitle') 
     .append($('<td class="tableCells">') 
     .append(val.value + '</td>') 
    ) 
}); 

不過,我不想寫出來內mainData 20個不同的對象。

+1

請發佈樣本數據 – baao

+0

'mainData.val'是長度> 1的數組嗎? –

+0

我們無法幫助您查看我們看不到的代碼。顯然,如果它在這條線上爆炸,'mainData.val'沒有''0''屬性。 –

回答

0

看起來你可能是指:

mainData[val][index].source_values 

寫作mainData.val字面上會在mainData的關鍵val