javascript - jQuery $.getJSON 并遍历数组正在倾倒所有

标签 javascript php jquery json laravel

这是我当前的 JS 代码:

$(function(){
$.getJSON("/get_slideshow_messages",
    function(data){
        setInterval(function(){
            $.each(data, function(i, item) {
                console.log(item.message);
            });
        }, 5000);
    }
);
});

我正在制作一个简单的幻灯片,对 url 的调用以以下形式返回一个 Laravel Eloquent 对象:

return SlideshowMessages::all();

如果我控制台记录“数据”,则返回:

Object, Object, Object]
 0: 
     Objectcreated_at: null
     id: "1"
     message: "test1"
     updated_at: null
     __proto__: Object
 1: Object
 2: Object
  length: 3

我怎样才能正确地遍历数组以便每次只收到一项?

最佳答案

您需要保留一个每次调用间隔时更改的计数器,而不是使用每个。我没有测试过这个,因为我没有你的数据集 - 但理论上这应该有效。

$(function(){
$.getJSON("/get_slideshow_messages",
    function(data){
        var currentSlide = 0;
        var nextSlide = function () {
                //Loop back around
                if (!data[currentSlide]) currentSlide = 0;
                console.log(data[currentSlide].message);

                //Increase our counter
                currentSlide++;
        }; 

        //render the first slide straight away
        nextSlide();

        //Set up our interval to render them every 5 seconds
        setInterval(nextSlide, 5000);
    }
);
});

关于javascript - jQuery $.getJSON 并遍历数组正在倾倒所有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29819875/

相关文章:

javascript - Wordpress 外部 api get 请求的延迟加载

php - 定点类型 - "exact value or not"?

javascript - .hover 在与 .html 一起使用时不起作用

javascript - 正则表达式分组步骤说明

javascript - 如何在javascript中通过键从数组中删除元素?

javascript - 获取 html 后使用 MailApp 发送表单。将 Google 表单嵌入到电子邮件中。生成的电子邮件仅包含文本

PHP/MySQL 无法识别的索引错误

javascript - 渲染底部div后如何让顶部div填充剩余高度? (没有 flex 盒子)

javascript - 是否有任何 Backbone.js 教程教 ".sync"与服务器?

javascript - 在元素的 ie11/Edge 中设置宽度 - 在严格模式下不允许分配给只读属性