1

我有一个我无法弄清楚的问题。我有一个 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);
    }
}
4

2 回答 2

2

您在必须插入值的部分需要帮助吗?如果是这样:

jQuery 代码

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]);
        }
    }
}

HTML 代码

<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并执行以下操作:

    1. 将 HTML 部分添加到网页中;
    2. 可以选择添加边框和一些边距以使其更清晰;


  • Ctrl使用++打开 Web 控制台并执行以下操作ShiftJ

    1. arr_i(我们将使用它而不是data)一个占位符值:

      var arr_i = new Array([00, 01, 02], [10, 12, 13]);
      
    2. 运行代码进行设置count

      // Count length of object
              var count = 0;
              for (i in data) {
                  if (data.hasOwnProperty(i)) {
                      count++;
                  }
             }
      
    3. 使用我的函数添加值(确保在使用 jQuery 的页面上运行代码!否则,使用此书签):

      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 票今天之前 明天 本星期明年(希望)...

于 2012-09-22T14:37:43.130 回答
0
function onSuccessClientCustomerData(data) {
    var data = $.parseJSON(data);
    ....
}

您需要先解析数据。

于 2012-09-22T14:22:20.563 回答