jQuery $ .each循环和json数据

我似乎无法使这个工作,我正在检索一些json数据,只是尝试循环它,将它附加到DIV。 这是我的代码:

如何返回JSON(PHP)

{"list":[{"subscribe":"example"},{"subscribe":"example2"},{"subscribe":"example3"},{"subscribe":"example4"},{"subscribe":"example5"}]} 

我的JSON使用JQUERY打电话

 $.getJSON("article.php",function(data) $.each(data.list, function(i,data) { var listData = "
  • " + data.subscribe + "
  • "; $('#lists').append(listData); }); });

    我没有在控制台中检索任何错误,但没有发生任何事情,我知道调用成功,我正在正确执行.each循环吗? 有人可以帮忙吗?

    也许你可以试试这个:

     $.each(data.list, function(i, item) { var listData = "
  • " + item.subscribe + "
  • "; $('#lists').append(listData); });

    只需将function(i, data)更改为function(i, item)

    通过以您的方式重用变量名称data ,您实际上并没有按预期循环遍历数组。

    我个人没有使用$.each循环数组,因为我总是只做一个for循环,所以你可以试试这个:

     $.getJSON("article.php", function (d) { var listsDiv = $("#lists"); for (var i = 0; i < d.list.length; i++) { listsDiv.append("
  • " + d.list[i].subscribe + "
  • "); }; });

    我99%有信心它应该适合你所需要的。 此外,最好在循环外部为div添加一个变量并附加到循环中,因为现在您的代码遍历JSON列表中每个对象的div的DOM。

    此外,我不确定您是否截断了JSON响应,但您可能希望附加“成功”属性并检查它。 所以你的代码将升级为:

     $.getJSON("article.php", function (d) { if (d.success) { var listsDiv = $("#lists"); for (var i = 0; i < d.list.length; i++) { listsDiv.append("
  • " + d.list[i].subscribe + "
  • "); }; } else { // Do something else to notify the user that the data could not be retrieved. }; });

    好像你有语法错误。 A {在第一行之后缺失,即第一行中的起始{for“function(data)”