0

У меня есть следующий код, который получает массив имен и значений из запроса json и добавляет их в элемент select на странице html.jQuery/Javascript, добавляющие элементы для выбора в IE7/8

Это работает для меня до сих пор во всех браузерах, кроме 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 (данные [key] [0] + "," + data [key] [1]) или предупреждения (данные [клавиша] [0] + ", "+ data [key] [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); 
    }); 
}); 
+0

Спасибо, Джозеф, я все еще учился, и это было плохой практикой от моего имени, посмотрев на различные примеры, проходящие через объекты json. Спасибо за разъяснение и объяснение функциональности jQuery. –

Смежные вопросы