【问题标题】:How can I get jQuery $('#div').html() to work in IE7+?如何让 jQuery $('#div').html() 在 IE7+ 中工作?
【发布时间】:2014-05-25 17:22:40
【问题描述】:

我已经使用下面的代码编写了 ajax 请求来动态更改 div:

$(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>

【问题讨论】:

  • 如果添加 alert('foo'); 会怎样在成功函数中?它可以在 IE 中运行吗?
  • 您的代码中缺少逗号(在第 4 行末尾)。
  • 我看不出你的代码有什么问题。它应该可以在 IE7 中运行...

标签: jquery internet-explorer


【解决方案1】:

您从 AJAX 请求收到的 HTML 是否有效?如果不是,这将导致 IE 失败,而其他一些浏览器则不在乎。

【讨论】:

  • 好像是。我发布了我试图拉入 div 的文件的 HTML。
  • @mike 由于您要提取整个 HTML 文档,因此 IFRAME(而不是 DIV)会更合适...
【解决方案2】:

'div' 是 HTML 中 id 的实际名称吗?当名称与实际标签名称冲突或 HTML 元素上的 id 和名称相同时,IE 可能会很挑剔。尝试将“div”更改为描述性内容。

无论如何,这样做是个好习惯

【讨论】:

  • 'div' 不是那个实际名称。我在示例中将其更改为更独特的内容。
【解决方案3】:

试试这个,

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

希望有所帮助!

【讨论】:

    【解决方案4】:

    我知道为时已晚 请试试这个

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

    请阅读此article 我希望对您有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多