Как я могу заставить jQuery $ (‘#div’).html() работать в IE7 ?

#jquery #internet-explorer

#jquery #internet-explorer

Вопрос:

Я написал ajax-запросы для изменения divs «на лету», используя приведенный ниже код:

 $(document).ready(function(){   
    $.ajax({    
        type : 'GET',
        url : url,
        success : function(data){ 
            $('#some_div').html(data);
        }
    });
});
  

Он отлично работает в Chrome, FF, Safari и на мобильных устройствах, но ничего не возвращает в IE7 . Я делаю что-то не так? Или это досадная ошибка IE? Если да, то как мне обойти это?

РЕДАКТИРОВАТЬ Вот HTML-файл, который я пытаюсь загрузить:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Store Notes</title>
    <meta name="description" content="" />
    <meta name="keywords" content="" />      
    <link type="text/css" href="/css/smoothness/jquery-ui-1.8.11.custom.css" rel="stylesheet" media="all" /> 
    <link type="text/css" href="/css/colorbox.css" rel="stylesheet" />  
    <link type="text/css" href="/css/rep.css" rel="stylesheet" /> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script> 
    <script type="text/javascript" src="/js/rep/global.js"></script>   
    <script type="text/javascript" src="/js/jquery.colorbox-min.js"></script>

</head>

<body><table style="width:100%;" cellspacing="12px">    
<tr><td><b>Some Guy</b> <span class="small">Apr 28th</span><br />testing123</td></tr><tr><td><b>Some Guy</b> <span class="small">Apr 28th</span><br />testing123</td></tr></table>
</body>
</html>
  

Комментарии:

1. Что, если добавить alert(‘foo’); в функцию успеха? Будет ли это работать в IE?

2. В вашем коде не хватает запятой (в конце строки 4).

3. Я не вижу ничего плохого в вашем коде. Это должно работать в IE7…

Ответ №1:

Действителен ли HTML, который вы получаете из AJAX-запроса? В противном случае это приведет к сбою IE, в то время как некоторым другим браузерам все равно.

Комментарии:

1. Похоже, что так. Я разместил HTML-код файла, который я пытаюсь загрузить, в div.

2. @mike Поскольку вы извлекаете весь HTML-документ целиком, IFRAME (вместо DIV) был бы более подходящим…

Ответ №2:

Является ли ‘div’ фактическим именем идентификатора в вашем HTML? IE может быть привередливым, когда имена конфликтуют с реальными именами тегов или если идентификатор и имя HTML-элемента совпадают. Попробуйте изменить ‘div’ на что-нибудь описательное.

В любом случае это хорошая практика

Комментарии:

1. ‘div’ — это не настоящее имя. Я изменил его на что-то более уникальное в примере.

Ответ №3:

попробуйте это,

 document.getElementById("div").innerHTML = data
  

Надеюсь, это поможет!

Ответ №4:

Я знаю, что уже поздно, пожалуйста, попробуйте это

 $('#some_div').html(data.toString());
  

пожалуйста, прочтите эту статью, я надеюсь, это поможет