0

JSONリクエストから名前と値の配列を取得し、それらをhtmlページの選択項目に追加する次のコードがあります。

これまでのところ、期待される結果の代わりにIEを除くすべてのブラウザーで機能します

<option value="211">Bakery and Cafe</option>

結果が出ます

<option value="211"/>

Javascript:

$.getJSON(link,function(data) {
                $('#CltOrgType').find('option').remove().end();
            for (key in data){
                alert(data[key][0],data[key][1]);
                var option = new Option(data[key][0],data[key][1],false,false);
                $('#CltOrgType').append(option);
            }
        });

JSON 応答は次のようになります。

[[ "Asian Cuisine" , "200" ], [ "Bakery and Cafe" , "211" ], [ "Breakfast, Lunch & Snacks" , "215" ], [ "Cafe" , "195" ], [ "Fully Licensed Restuarant" , "205" ], [ "Japanese Cuisine" , "210" ], [ "Licensed Italian Cuisine" , "206" ], [ "Middle Eastern Cuisine" , "209" ], [ "Pizza Restaurant" , "199" ], [ "Salads, Soups & Sandwiches" , "213" ], [ "Sandwiches and Wraps" , "207" ], [ "Sushi" , "214" ], [ "Take Away" , "208" ], [ "Yoghurt and Salads" , "212" ]]

すべてのブラウザは、console.log(data[key][0] +","+data[key][1]) または alert(data[key][0] +","+data[key] を使用して正しい情報を表示します][1])

アイデア、解決策、または考えをいただければ幸いです。これは私がしばらく動けなくなったので

4

1 に答える 1

1

配列で for-in を使用するのはなぜですか? そして、jquery を使用してその場で要素を作成できることをご存知でしたか?

$.getJSON(link,function(data) {

  var cot = $('#CltOrgType');

  cot.empty();

  $.each(data,function(i,val){
    $('<option/>',{
      value : val[1]
    })
    .text(val[0])
    .appendTo(cot);
  });
});
于 2013-02-11T03:13:01.923 に答える