IE未正确处理Jquery ajax json数据(6~9):(

IE未正确处理Jquery ajax json数据(6~9):(,jquery,ajax,json,internet-explorer,Jquery,Ajax,Json,Internet Explorer,我将感谢任何帮助 我使用下面的代码创建带有“随机”产品的区域。 从php脚本接收的JSON数据如下所示: {"New":[{"product_id":"50",...},...], "Best":[{"product_id":"26",...},...], ...} “新”产品必须转到,依此类推 问题1:尽管它在所有优秀的浏览器上都能正常工作, IE(6~9)将所有div留空 问题2:我希望客户端缓存这个ajax JSON数据。 从FireBug中可以看出,这些请求没有被缓存。我必须求助于插件

我将感谢任何帮助

我使用下面的代码创建带有“随机”产品的区域。 从php脚本接收的JSON数据如下所示:

{"New":[{"product_id":"50",...},...],
"Best":[{"product_id":"26",...},...],
...}
“新”产品必须转到
,依此类推

问题1:尽管它在所有优秀的浏览器上都能正常工作, IE(6~9)将所有div留空

问题2:我希望客户端缓存这个ajax JSON数据。 从FireBug中可以看出,这些请求没有被缓存。我必须求助于插件吗

 $.ajax({
    url: "/index.php?AjaxRequest&action=5",
    dataType: "json",
    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="#" class="right_sidebar" onclick="location.href=\''+this.link+'\'">';
    new_str+= '<img class="right_sidebar_thumb" src="'+this.image+'" alt="'+this.name+'"/></a></li>';
    });
    new_str+='</ul>';
        $('#'+key).append(new_str);
    });
    }});
$.ajax({
url:“/index.php?AjaxRequest&action=5”,
数据类型:“json”,
成功:功能(数据){
$.each(数据、函数(键、值){
var new_str='
    '; $(value.sort(function(){return 0.5-Math.random()}).slice(0,3)).each(function()){ 新的_str+='
  • '; }); 新的_str+='
'; $(“#”+键).append(新的#str); }); }});
Jquery希望只有一个元素具有给定的id。请尝试切换到

<div class=’new-product’/>
至于捕获,请尝试使用错误方法

$.ajax({
  error: function(){
  }
});

检查JSON对象中的最后一项后面是否有逗号。我知道这可能会破坏IE,因为它无法处理存在空项的问题。我不知道这是否是您的问题,但当我使用JSON时,我的JSON结构经常出现问题。为了帮助查找问题,我使用了一个在线JSON验证器,我发现它非常有用好:

终于找到了解决方案! 原来IE在缓存jquery请求。 添加
cache:false
解决了该问题。
停止IE!

使用jQuery从JavaScript设置JavaScript onclick事件?真的吗?肯定没有重复的ID。关于onclick事件,只需要它工作,当它工作时,我会查看详细信息。谢谢!你为什么要在普通href的位置使用onclick?@Adam:是的,这很难看。但是因为他正在构建一个HTML字符串(希望将DOM修改的数量保持在较低的水平,因为它们非常慢)唯一更好的解决方案是使用委托(在这种情况下,他应该使用委托).是的,你是对的。href将完成这项工作。但这里的问题不同。无论如何,谢谢。我有几个具有唯一ID的div。从ID更改为类不会改变任何内容,也不会有错误……但无论如何,谢谢
$.ajax({
  error: function(){
  }
});