如何在jquery中使用数组填充表?

时间:2012-09-22 14:18:57

标签: jquery ajax arrays multidimensional-array

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

2 个答案:

答案 0 :(得分: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 + Shift + J 打开Web控制台并执行以下操作:

    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的页面上运行代码!或者,使用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);
    ....
}

您需要先解析数据。