1

.eachJSON配列内のオブジェクト のステートメントを書き込もうとしています。

$.ajax({
    url: url,
    dataType: 'json',
    success: function(data){
        $.each(data, function (key, value){
            ...do stuff...
        }
});

問題は、内部のオブジェクトに対してforを実行する必要がある場合にのみ、 .eachforを実行するため、1つの結果しか返さないことです。簡単なことだと思いますが、それが何なのかわかりません。data.eachdata.each(data.something ...)

編集 コメントリクエストごとに、データは次のようになります。

[["data1","data2","data3"],
 ["data1","data2","data3"],
 ["data1","data2","data3"]
]

EDIT2

これが私の作業コードのJSFiddleです。関数を変更してそれ.eachを実行すると、機能しますが、alertdivを作成しようとすると、1つのエントリしか吐き出されません。

4

5 に答える 5

1

あなたのフィドルの問題は.eachループではありません.html()。指定された要素内のすべてを新しいコードに置き換えるコードを追加するために使用していることです。

.append()の代わりに使用.html()すれば問題ありません。

于 2012-12-19T17:57:50.683 に答える
1

私はもともと $.map() を使用して配列を作成することを提案しました。

しかし、実際の問題は、ループの各反復で OP が html を上書きしていたことです。実際の回答を表示するために私の回答を編集します。

回答: OP は、.each() ループで .html() を .append() に変更する必要がありました。

于 2012-12-19T17:18:34.763 に答える
1

ネストされたループが必要なようです:

$.ajax({
    url: url,
    dataType: 'json',
    success: function(data){
        $.each(data, function (idx1, value1){
            $.each(value1, function (idx2, value2){
                //...do stuff...
            });
        });
    });
于 2012-12-19T17:24:22.790 に答える
0

おそらくそれはJSONオブジェクトではないので、次のようにしてください

$.each($.parseJSON(data), function (key, value){
  ... stuff...
}

オブジェクトに応じて、マップを実行する必要があります。

// Therefore, convert it to a real array
var realArray = $.makeArray( data )

// Now it can be used reliably with $.map()
$.map( realArray, function(val, i) {
  // do something 
});

編集-フィドルでテスト

オブジェクトを使用して、それがネストされた配列であることを確認できるため、オブジェクトを二重にループする必要があります。

var data = [["data1","data2","data3"],
 ["data1","data2","data3"],
 ["data1","data2","data3"]
];

$.each(data, function(key, item) {
    $.each(item, function(i, val) {
        alert(val);
    })
});

フィドル

編集2-あなたの状況に合わせたコード!

$.ajax({
    url: url,
    dataType: 'json',
    success: function(data){
        $.each(data, function(key, item) {
            $.each(item, function(i, val) {
                alert(val);
            })
        }
    }
});

それが役に立てば幸い!!

于 2012-12-19T17:21:36.773 に答える
0

もう 1 つのループを使用する

$.each(data, function(key, value) {
    $.each(value, function(i, val) {
        console.log(val)
    })
})​

フィドルをチェック

于 2012-12-19T17:24:52.220 に答える