此代码在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');
});
答案 0 :(得分:2)
我有完全相同的问题,问题是我的json无效(它中有隐藏的制表符)。 Chrome似乎比其他浏览器更严格。
使用.error
函数检查响应,例如
$.getJSON('s.json', function(data) {
//...
})
.error(function(data) {
console.log("Error!");
});
您还可以尝试使用http://jsonlint.com/
等功能验证输出答案 1 :(得分: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以查看它到底有多远。
答案 2 :(得分:0)
在网络服务器中运行该应用程序。它解决了这个问题。