【问题标题】:jQuery $.each loop and json datajQuery $.each 循环和 json 数据
【发布时间】:2011-08-23 20:12:45
【问题描述】:

我似乎无法让它工作,我正在检索一些 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 = "<li>" + data.subscribe + "</li>";
      $('#lists').append(listData);
   });
});

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

【问题讨论】:

  • 您是否尝试过在迭代循环之前粘贴console.log 以查看返回的data 是什么?

标签: php jquery ajax json each


【解决方案1】:

也许你可以试试这个:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    我有 99% 的信心认为它应该可以满足您的需求。此外,最好在循环之外为您的 div 设置一个变量并附加到循环中,因为现在您的代码正在为 JSON 列表中的 each 对象遍历该 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("<li>" + d.list[i].subscribe + "</li>");
            };
        } else {
            // Do something else to notify the user that the data could not be retrieved.
        };
    });
    

    【讨论】:

      【解决方案3】:

      您似乎遇到了语法错误。第一行后缺少一个 { 即第一行中“函数(数据)”的起始 {

      【讨论】:

      • +1 或者它是一个糟糕的复制/粘贴,但它永远不会丢失。很好的发现,我看起来通过了它,大声笑......
      猜你喜欢
      • 1970-01-01
      • 2011-01-21
      • 2011-03-03
      • 2011-10-02
      • 1970-01-01
      • 2014-08-31
      • 2014-10-19
      • 2017-08-04
      相关资源
      最近更新 更多