【问题标题】:Facebook / Javascript API Display all data pulled not workingFacebook / Javascript API 显示所有提取的数据不起作用
【发布时间】:2015-08-22 09:19:43
【问题描述】:

我正在尝试从 facebook 群组帖子中获取所有消息以显示。使用以下代码:

   FB.api("/groupid/feed", function (response) {
    console.log(i + " : " + response.data.length);
    for (var i = 0; i < response.data.length; i++) {
        console.log(i + " : " + response.data[i].message);
        document.getElementById('posts').innerHTML = 'post: ' + i + ' : ' + response.data[i].message +'</br>';

    }

}) ;

我无法获取 getElementId 中的信息来显示控制台日志显示的所有信息。控制台日志显示 24 项,网站仅显示 1 项。我需要更改哪些信息才能显示所有 24 个项目而不仅仅是第一个项目?

【问题讨论】:

    标签: javascript facebook posts facebook-group


    【解决方案1】:

    您正在覆盖该 for 循环中的 innerHTML 属性。

    相反,您应该将其附加到 innerHTML。

    试试这个:

     FB.api("/groupid/feed", function (response) {
        for (var i = 0; i < response.data.length; i++) {
            console.log(i + " : " + response.data[i].message);
            document.getElementById('posts').innerHTML += 'post: ' + i + ' : ' + response.data[i].message +'</br>';
        }
     });
    

    当您使用它时,您还可以完全重构循环以使用本机 .forEach 方法。

    会更干净,看看:

     FB.api("/groupid/feed", function (response) {
        response.data.forEach(function(item, i){
          console.log(i + " : " + item.message);
          document.getElementById('posts').innerHTML += 'post: ' + i + ' : ' + item.message +'</br>';
        });
     });
    

    【讨论】:

    • 非常感谢!我在想我必须处理 For 语句的编写方式,但看不到如何修复它,而且这次谷歌没有太大帮助
    • 不客气!如果您满意,请将答案标记为解决方案。
    【解决方案2】:

    基本上 Dannys 会做出一些改进。千万不要在循环中使用innerHTML,并且可以缓存长度(虽然差别不会很大):

    var feed;
    FB.api("/groupid/feed", function (response) {
        for (var i = 0, count = response.data.length; i < count; i++) {
            console.log(i + " : " + response.data[i].message);
            feed += 'post: ' + i + ' : ' + response.data[i].message +'</br>';
        }
        document.getElementById('posts').innerHTML = feed;
    });
    

    当然,您也可以缓存 response.data。我肯定会使用for 循环而不是forEachforEach 仅在 IE9+ 中受支持(我不再关心 IE8,但仍然如此)。 for 也比forEach 快很多:https://jsperf.com/for-vs-foreach/37

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多