3

ええ、私は同じ主題について3つか4つの異なる答えを持っていますが、私はそれらを組み合わせて必要なものを作成するのに苦労しています。Json.Netを使用して結果をシリアル化すると、次のオブジェクトが生成されます。

"[  { "Id": 1, "OrderInList": 1  },
    { "Id": 2, "OrderInList": 2  },
    { "Id": 4, "OrderInList": 3  }
]"

オプション値テキストをOrderInList値にします(後で他の何かでIDを使用します)。

現在、次のコードがありますが、143個のオプションボックスが作成されます。なぜそれが行われているのかはわかりますが、それを機能させるためにどのように変更するのかわかりません。

    $.getJSON("/Json/GetOrderSelectList?parentCategoryId=" + postData, null, function (jsonResult) {
        $('#orderInList').attr('enabled', 'true');
        $.each(jsonResult, function() {
            $.each(this, function(index, item) {
                                $('#orderInList').append(
                                    $("<option></option>")
                                        .text(index)
                                        .val(index)
                                );

            });
        });

どんな助けでもいただければ幸いです!

4

2 に答える 2

8

私はあなたがこのようなことを試みていると思います:

var jsonResult = [{
    "Id": 1,
    "OrderInList": 1},
{
    "Id": 2,
    "OrderInList": 2},
{
    "Id": 4,
    "OrderInList": 3}
]

$('#orderInList').attr('enabled', 'true');
$.each(jsonResult, function() {
   $('#orderInList').append(
        $("<option></option>").text(this.Id).val(this.OrderInList);
   );
});​

デモ

完全なコード

$.getJSON("/Json/GetOrderSelectList?parentCategoryId=" + postData, function(jsonResult) {
    $('#orderInList').attr('enabled', 'true');
    $.each(jsonResult, function() {
        $('#orderInList').append(
            $("<option></option>").text(this.Id).val(this.OrderInList)
        );
    });
});​
于 2012-08-12T09:47:23.030 に答える
0

.eachへの最初の呼び出し内にネストされている.eachへの追加の呼び出しは必要ありません。最初の.each呼び出しでアイテムとインデックスを渡すだけで、要素を作成できます。これを試して:

var json = [  { "Id": 1, "OrderInList": 1  },
    { "Id": 2, "OrderInList": 2  },
    { "Id": 4, "OrderInList": 3  }
];

function createSelect(options){
    $.each(options,function(index,item){
           $("#orderInList").append($("<option></option>").attr("value", item.OrderInList).text(item.OrderInList));

    });
}

$(document).ready(function(){
createSelect(json);
});

実例:http://jsfiddle.net/BzC9N/

于 2012-08-12T09:54:25.437 に答える