0

我有以下代码从json请求中获取名称和值的数组,并将它们附加到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(data [key] [0] +“,”+ data [key] [1])或alert(data [key] [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功能。 – 2013-02-11 03:20:30