通过 jQuery ajax json 迭代 .each 在 IE 中不起作用
我使用以下代码创建带有“随机”产品的 div。从 PHP 接收到的 JSON 数据是这样的:
{"New":[{"product_id":"50",...},...],
"Best":[{"product_id":"26",...},...],
...}
“新”产品必须转到
,“Best”转到“Best”,依此类推。代码:
$.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 没有给出错误。
I'm using the following code to create divs with "random" products. The JSON data received from PHP is like this:
{"New":[{"product_id":"50",...},...],
"Best":[{"product_id":"26",...},...],
...}
"New" products must go to <div id="New">
, "Best" to "Best" and so on.
Code:
$.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);
});
}
});
The problem arises only with IE. It iterates only the first time, and fills only the first div, while all other browsers work fine.
The problem is not in duplicate div ids, and JSON is valid, and jQuery gives no errors.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题现已解决!
需要关闭缓存:
cache:false
!谢谢大家!
Problem is now resolved!
Needed to turn caching to off:
cache:false
!Thanks to everybody!