我有一个我无法弄清楚的问题。我有一个ajax成功函数,它循环遍历一个多维数组,如下所示:
function onSuccessClientCustomerData(data) {
// Count length of object
var count = 0;
for (i in data) {
if (data.hasOwnProperty(i)) {
count++;
}
}
// Fetch data
var arr = new Array(data.variable0, data.variable1, data.variable2, data.variable3, data.variable4);
for(var i = 0; i< count; i++) {
var variable = $.parseJSON(arr[i]);
}
}
我每个数组都有三个键,我想在每一行填充td:eq(1)到td:eq(2):
<table id="test">
<tr>
<td><input type="text"></td>
<td class="outputName">-</td>
<td class="outputRating">-</td>
<td class="outputTurnover">-</td>
</tr>
<tr>
<td><input type="text"></td>
<td class="outputName">-</td>
<td class="outputRating">-</td>
<td class="outputTurnover">-</td>
</tr>
</table>
我该怎么做。我已尝试过各种功能,但无法让它工作!
感谢任何帮助或参考阅读!
谢谢!
编辑/这是我的解决方案
function onSuccessClientCustomerData(data) {
// Count length of object
var count = 0;
for (i in data) {
if (data.hasOwnProperty(i)) {
count++;
}
}
// Fetch data
var arr = new Array(data.variable0, data.variable1, data.variable2, data.variable3, data.variable4);
for (var i = 0; i < count; i++) {
var arr_j = $.parseJSON(arr[i]);
$("#row" + i + " .key0").html(arr_j.name);
$("#row" + i + " .key1").html(arr_j.rating);
$("#row" + i + " .key2").html(arr_j.percentOfTotalIncome);
}
}
答案 0 :(得分:2)
您是否需要在必须插入值的部分提供帮助?如果是这样的话:
function onSuccessClientCustomerData(data) {
// Count length of object
var count = 0;
for (i in data) {
if (data.hasOwnProperty(i)) {
count++;
}
}
// Fetch data
var arr_i = new Array(data.variable0, data.variable1, data.variable2, data.variable3, data.variable4);
for (var i = 0; i < count; i++) {
var arr_j = arr_i[i];
for (var j = 0; j < arr_j. length; j++) {
$("#row" + i + " .key" + j).html(arr_j[j]);
}
}
}
<table id="test">
<tr id="row0">
<td><input type="text"></td>
<td class="key0" class="outputName">...</td>
<td class="key1" class="outputRating">...</td>
<td class="key2" class="outputTurnover">...</td>
</tr>
<tr id="row1">
<td><input type="text"></td>
<td class="key0" class="outputName">...</td>
<td class="key1" class="outputRating">...</td>
<td class="key2" class="outputTurnover">...</td>
</tr>
</table>
我用Chrome测试了代码并且运行正常。以下是重现它的步骤: -
使用 F12 打开“元素”窗格并执行以下操作:
使用 Ctrl + Shift + J 打开Web控制台并执行以下操作:
将arr_i
(我们将使用它而不是data
)赋予占位符值:
var arr_i = new Array([00, 01, 02], [10, 12, 13]);
运行代码以设置count
:
// Count length of object
var count = 0;
for (i in data) {
if (data.hasOwnProperty(i)) {
count++;
}
}
使用我的函数添加值(确保在使用jQuery的页面上运行代码!或者,使用this bookmark):
for (var i = 0; i < count; i++) {
var arr_j = arr_i[i];
for (var j = 0; j < arr_j. length; j++) {
$("#row" + i + " .key" + j).html(arr_j[j]);
}
}
瞧!这应该可以在明天给我带来约20至30票 本周(希望如此)......
答案 1 :(得分:0)
function onSuccessClientCustomerData(data) {
var data = $.parseJSON(data);
....
}
您需要先解析数据。