0

私は次のような結果を得ました

{"ID":1022,"Type":"type1","Name":"name1","Values":[{"ID":3540,"Name":"1"},{"ID":3541,"Name":"2"},{"ID":3542,"Name":"cb"}]}

成功すると、私はこのような機能を手に入れました

   success: function(data) {
            $.each(data, function() {
                $('#properties').append(
                this.ID + "," +
                this.Name + "," +

                this.type + "," +
                    this.values
                );
            });
        }

しかし、「値」は別の配列なので、どのように表示しますか?

4

4 に答える 4

1

this.Values[0].ID最初の要素からIDを正しく返す必要があると思います。

配列内の各アイテムをループして、同じ方法でアクセスすることもできます。

for (var i = 0; i < this.Values.length; i++) {
    alert(this.Values[i].ID); //Show an alert for each ID.
}
于 2012-05-23T15:29:18.437 に答える
1
//get the total length of values array.
this.Values.length;

for (  var i = 0 ; i < this.Values.length; i++ ){
 var resultId= this.Values[i].ID;
 var resultName = this.Values[i].Name;
}

これは機能します。

于 2012-05-23T15:32:06.467 に答える
0

this.values[0].IDうまくいくかもしれませんが、完全にはわかりません。でも、やってみても害はないと思います。

于 2012-05-23T15:29:02.740 に答える
0

これの値が最も内側の関数内にあるかどうかはよくわかりませんが、おそらくあなたが望むものではありません。変数が呼び出されたときではなく、作成されたときに関数に変数を渡すには、次のような別の関数で変数をラップする必要があります。

{
    success: function(data) {
        $.each(data, (function(dat) { return function(index, value) {
            $('#properties').append(
               value.ID + "," +
               value.Name + "," +
               dat.type + "," +
               dat.values
            );
        }; ) (data));
    }
};
于 2012-05-23T15:35:56.777 に答える