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

    }
}

各配列には3つのキーがあり、各行の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部分をWebページに追加します。
    2. オプションで、境界線といくつかのマージンを追加して、明確にします。


  • Ctrl+ Shift+を使用してWebコンソールを開き、J次の手順を実行します。

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

そして、voilà!これはおそらく私に約20から30票を取得するはずです今日までに 明日 今週来年(うまくいけば)..。

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

最初にデータを解析する必要があります。

于 2012-09-22T14:22:20.563 に答える