jQuery 1.7 работает по-разному в IE8 и IE9? - PullRequest
1 голос
/ 20 марта 2012

Я думал, что jQuery должен был разрешить проблемы между браузерами. В любом случае у меня есть код, который прекрасно работает в IE9, Firefox и Chrome, но не в IE8. Все, что я пытаюсь сделать, это загрузить тег выбора с параметрами. У меня есть следующий тег выбора на странице:

 <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 ]

1 голос
/ 20 марта 2012

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>");
}
0 голосов
/ 20 марта 2012

Вам не нужно включать это:

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

Поскольку jQuery будет анализировать его для вас, когда dataType равно json.

...