0

我正在尝试将来自 ajax 调用的数据添加到我页面上的 div 中。以下在 webkit 浏览器中工作正常,但在 IE 中失败 -

$.ajax({
    type: 'POST',
    url: '/cart/add_to_cart',
    data: {'item_id': item_id},
    success: function(data) {
        $('#cart_summary').html(data);
    }
)};

我的html如下:

<div id="cart_summary">
    <a class='link_to_cart' href="/cart/">
        <span> CART &#40;5&#41; &pound;1054.75 </span>
        <img id="cart_icon" src="/static/images/cart_icon.tiff">
    </a>
</div>

我试过放弃jQuery.html()调用并使用

var cartSummary = document.getElementById('cart_summary');
cartSummary.innerHTML = data;

但这也失败了(在 IE 调试器中查看 cartSummary.innerHTML 的结果显示了我想要的 html,但它没有显示在页面上)。

我也尝试了 jQuery 的各种组合,.remove() .text().append()无济于事。

4

2 回答 2

1

这可能会有所帮助:

jQuery Ajax 错误处理函数

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Time out error.');
            } else if (exception === 'abort') {
                alert('Ajax request aborted.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
});

添加后,调用您的ajax函数,您将获得错误详细信息!

于 2012-12-03T14:35:15.820 回答
0

好的,我找到了问题所在。我写了一个狡猾的 django 模板标签,它抛出了一个未封闭的<a>标签。Internet Explorer 正在(非常)奇怪地处理这个问题并把 dom 弄得一团糟。

这样做的结果是我有两个<div id="cart_summary">元素(仅在 IE 上 - 我从来没有弄清楚为什么)。可以想象,这给document.getElementById('cart_summary')和带来了问题$('#cart_summary')

解决方案是删除重复的元素 id。

(非常感谢Palash Mondal、rcdmk、Explosion Pills、WebweaverD 和Wirey,他们花时间研究我的问题)。

于 2012-12-05T10:23:53.803 回答