jQuery 1.7在IE8和IE9中的工作方式不同?

时间:2012-03-19 21:49:22

标签: jquery internet-explorer-8 internet-explorer-9

我认为jQuery应该解决跨浏览器问题。无论如何,我有一些代码在IE9,Firefox和Chrome中运行良好但在IE8中没有。我尝试做的就是加载带选项的select标签。我在页面上有以下选择标记:

 <select id="Select0"></select>

jQuery(1.7):

 $(document).ready(function () { 
$.ajax({ 
       type: "POST", 
       url: "myPage.aspx/MyWebMethod", 
       contentType: "application/json; charset=utf-8", 
       data: "{}", 
       dataType: "json", 
       success: function (states) { 
           var jsonCodes = JSON.parse(states.d); 
           for (var i in jsonCodes) { 
               $("#Select0").append(new Option(jsonCodes[i].regionname, jsonCodes[i].region_id)); 
           } 
       } 
   });

我还需要这个在IE8中工作,或者找到另一种方法来编写它可以在所有浏览器中使用。 感谢

2 个答案:

答案 0 :(得分:1)

IE7不支持JSON.parse。 jQuery当然有解决这个问题的方法。试试这个:

var jsonCodes = $.parseJSON(states.d); 

<强>更新

我无法让$(element).append(new Option(x,y));在IE8中工作。该选项不会附加标签。 http://jsfiddle.net/7qfhg/。请尝试更改为此语法http://jsfiddle.net/7qfhg/3/

var sel = $("select");
for (var i = 1; i <= 50; i++) {
      sel.append("<option value='" + i + "'>" + i + "</option>");
}

答案 1 :(得分:0)

您不需要包含此内容:

var jsonCodes = JSON.parse(states.d); 

由于jQuery会在dataTypejson时为您解析。