0

您好,我在我的网站上实现了一个简单的 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

任何帮助将不胜感激!

谢谢你。

4

1 回答 1

2

解决此类问题的最佳方法是将您的 IE 副本放入 IE7 仿真中,然后使用 F12 启动调试器。然后,您可以在该$.each()行上设置断点并检查 JSON 调用的结果。然后,您可以在迭代中进一步设置断点.each()并逐步执行每个断点,直到遇到错误并查看导致错误的数据/代码。IE 控制台还可以准确地告诉您是哪一行代码导致了错误。

如果您想让我们猜测可能出了什么问题,以下是我的猜测:

  1. 如果你没有得到任何 JSON 数据,那么就没有什么可以运行.each()并且input永远不会被初始化。当您尝试执行时$('#description').append(output);output可能未定义会导致错误。

  2. 此外,input应声明为局部变量。

  3. 此外,您当前的代码不会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);
});
于 2013-03-08T21:28:30.313 回答