使用.each通过jQuery迭代ajax json不能在IE中工作

时间:2011-07-01 00:24:20

标签: jquery ajax json internet-explorer each

我正在使用以下代码创建带有“随机”产品的div。从PHP收到的JSON数据是这样的:

{"New":[{"product_id":"50",...},...],
"Best":[{"product_id":"26",...},...],
...}

“新”产品必须转到<div id="New">,“最佳”转到“最佳”等等。

代码:

$.ajax({
    url: "/index.php?AjaxRequest&action=5",
    dataType: "json",
    error: function (xhr, status, errorThrown) {
        alert(errorThrown + '\n' + status + '\n' + xhr.statusText);
    },

    success: function (data) {
        $.each(data, function (key, value) {
            var new_str = '<ul>';
            $(value.sort(function () {
                return 0.5 - Math.random()
            }).slice(0, 3)).each(function () {
                new_str += '<li><a href="' + this.link + '" class="right_sidebar">';
                new_str += '<img class="right_sidebar_thumb" src="' + this.image + '" alt="' + this.name + '"/></a></li>';
            });
            new_str += '</ul>';
            $('#' + key).append(new_str);
        });
    }
});

问题仅出现在IE上。它只是第一次迭代,只填充第一个div,而所有其他浏览器都可以正常工作。

问题不在于重复的div ID,JSON是有效的,jQuery没有错误。

1 个答案:

答案 0 :(得分:0)

问题现已解决! 需要将缓存关闭:cache:false! 谢谢大家!