2012-04-02 57 views
1

此代码在FF和safari中正常工作,不在Chrome中为什么?

$.getJSON('s.json', function(data) { 
    var items = []; 

    $.each(data, function(key, val) { 
     items.push('<li id="' + key + '">' + val + '</li>'); 
    }); 

    $('<ul/>', { 
     'class' : 'my-new-list', 
     html : items.join('') 
    }).appendTo('body'); 
}); 
+7

你可以定义'不在铬,为什么?'你有任何错误?异常? – 2012-04-02 05:10:08

+1

你可以设置我们可以调查的演示吗? – Starx 2012-04-02 05:13:20

+1

你能说你的jQuery版本吗? – 2012-04-02 05:22:48

回答

0

这种方法可能仍然不起作用,但会随着它们的创建而逐渐追加元素,从而为您提供更好的调试机会。

var $ul = $('<ul></ul>').appendTo('body').addClass('my-new-list'); 
$.getJSON('s.json', function(data) { 
    $.each(data, function(key, val) { 
     $('<li></li>').appendTo($ul).attr('id',key).html(val); 
    }); 
}); 

检查DOM,看它有多远。

1

我有完全相同的问题,问题是我的JSON无效(它有隐藏的制表符)。 Chrome似乎比其他浏览器更为严格。

检查与.error的功能,例如响应,

$.getJSON('s.json', function(data) { 
    //... 
}) 
.error(function(data) { 
    console.log("Error!"); 
}); 

您也可以尝试验证的东西输出像http://jsonlint.com/

0

运行的Web服务器应用程序。它解决了这个问题。

相关问题