Json jquery Ie8问题

时间:2011-01-12 21:25:18

标签: jquery ajax json

我试着了解我的错误在哪里,我找不到它:这是我的代码

的javascript:

  $(document).ready(function(){
        $.getJSON('ajax/data.json', function(data) {
             $.each(data.results, function(i,item){
                    alert(item.foo);
                });
        });
    });

和data.json文件:

{
    "results":[
        {
          "foo": "The quick brown fox jumps over the lazy dog.",
          "bar": "ABCDEFG",
          "baz": [52, 97]
        },
        {
          "foo": "The quick brown fox jumps over the lazy dog.",
          "bar": "ABCDEFG",
          "baz": [52, 97]
        },
    ]
}

在IE7,FF中正常工作,但在IE8中不起作用

你能帮助我,这里有什么不对吗?

PS:使用1.4.3 jquery版本

谢谢!

2 个答案:

答案 0 :(得分:3)

你有无效的JSON,一个尾随的逗号:

    },

这是非法的JSON,除了IE之外的所有浏览器都可以容忍。

答案 1 :(得分:1)

你的问题是你正在使用alert javascript函数进行调试,这是一个阻塞调用。它改变了javascript的行为。出于调试目的,使用jQuery将项目添加到ul或使用firebug进行调试。

$(document).ready(function(){
    $.getJSON('ajax/data.json', function(data) {
         $.each(data.results, function(i,item){
                $('<li>').text(item.foo).appendTo('#results');
            });
    });
});

<body>
<ul id="results">
</ul>
</body>

在FF和IE8中使用这种方法对我有用。