您好,我在我的网站上实现了一个简单的getJSON调用。它工作正常,但IE7似乎输出和错误。谁能告诉我发生了什么?
var output = '';
var fullurl = 'myurl'
$.getJSON(fullurl, function(json) {
$.each(json, function(i,d) {
output = '<span style="font-size:11px;"><b>Name :</b> '+d.Name+'</span><br>';
output += '<span style="font-size:11px;"><b>Date :</b> '+d.Date+'</span><br><br>';
output += '<span style="font-size:11px;"><b>Description :</b> '+d.Description+'</span><br>';
});
$('#description').append(output);
弹出两个错误
Error: Object doesn't support this property or method
Error: Expected identifier, string or number
任何帮助将不胜感激!
谢谢。
答案 0 :(得分:2)
解决这些问题的最佳方法是将IE的副本放入IE7仿真中,然后使用F12启动调试器。然后,您可以在$.each()
行上设置断点并检查JSON调用的结果。然后,您可以在.each()
迭代内部进一步设置断点,逐步执行每个断点,直到遇到错误并查看导致错误的数据/代码。 IE控制台也可以准确地告诉您导致错误的代码行。
如果你想让我们猜出可能出错的地方,我猜这是:
如果您没有获得任何JSON数据,则无法运行.each()
,input
永远不会被初始化。当您尝试执行$('#description').append(output);
时,output
可能未定义,从而导致错误。
此外,input
应声明为本地变量。
此外,您当前的代码不会累积循环的所有迭代中的input
值 - 它只是最后一次迭代。我不确切地知道你的意图是什么,但你可能想要在循环外初始化input
并在循环内使用+=
来获取所有三行。这将累积,而不是替换每个循环。
以下是包含这些更改的代码:
var fullurl = 'myurl';
$.getJSON(fullurl, function(json) {
var output = "";
$.each(json, function(i,d) {
output += '<span style="font-size:11px;"><b>Name :</b> '+d.Name+'</span><br>';
output += '<span style="font-size:11px;"><b>Date :</b> '+d.Date+'</span><br><br>';
output += '<span style="font-size:11px;"><b>Description :</b> '+d.Description+'</span><br>';
});
$('#description').append(output);
});