Javascript 如何在jquery上循环数组

Javascript 如何在jquery上循环数组,javascript,jquery,infinite-loop,Javascript,Jquery,Infinite Loop,我一直在尝试制作一个脚本来更改span的文本 不可否认,我对jQuery并不擅长,并且已经找到了一个脚本。我已经编辑了我,但我无法让脚本循环,我甚至不知道从哪里开始。任何代码提示或相关文档的链接都将不胜感激 以下是迄今为止的jQuery: function change() { $('#msg').html(options.pop()).fadeIn(750).delay(2000).fadeOut(750, change); }; var options = [ "R

我一直在尝试制作一个脚本来更改span的文本

不可否认,我对jQuery并不擅长,并且已经找到了一个脚本。我已经编辑了我,但我无法让脚本循环,我甚至不知道从哪里开始。任何代码提示或相关文档的链接都将不胜感激

以下是迄今为止的jQuery:

function change() {
        $('#msg').html(options.pop()).fadeIn(750).delay(2000).fadeOut(750, change);
};

var options = [
    "Red Bull",
    "Smoke",
    "Babes",
    "css",
    "batman"
].reverse(); 
change();

在jsfiddle上:

编辑:我只是想知道你真正想要什么

只需放置一个全局变量:

var i = 0;
现在,将其添加到
change()
函数中:

if(i < messages.length){
    i++;
}
else{
    i = 0;
}
if(i
这部分代码将在yout数组上循环,并在到达末尾时返回到开头

然后,将
messages.pop()
更改为
messages[i]


下面是JSFIDLE:。

停止弹出数组,改用迭代器

var messages = [
    "Red Bull",
    "Smoke",
    "Babes",
    "css",
    "batman"
],
    i = 0;

(function change() {
    var msg = messages[i>messages.length-1 ? i=0 : i++];
    $('#msg').html(msg).fadeIn(750).delay(2000).fadeOut(750, change);
})();
pop()将从数组中删除该值。因此,它可以工作一个完整的周期。之后,数组为空。因此,它显示空白值。实际上它是循环工作的

var messages = [
    "Red Bull",
    "Smoke",
    "Babes",
    "css",
    "batman"
].reverse();

var i = messages.length;
function change() {
        i=(i%messages.length);
        $('#msg').html(messages[i++]).fadeIn(750).delay(2000).fadeOut(750, change);

};

问题是
Array.pop
会从数组中删除元素,因此一旦元素浏览完您的消息列表,一旦没有更多条目,它就会开始抛出错误。要使其连续循环,请将新删除的消息添加到阵列的前端:

function change() {
    var message = messages.pop();
    messages.unshift(messages);
    $('#msg').html(message).fadeIn(750).delay(2000).fadeOut(750, change);
};

你的小提琴好像在用。你到底需要什么?@basitseed,它没有循环。它只循环一次。@basitseed它在数组的最后一个变量上停止:我想我从未见过这种语法。很好(我认为)。它只是一个命名的生命和一个三元,没有魔力,但一开始可能看起来有点“奇怪”?是的。如果你想随机化,这里有一个选项,我想这看起来很奇怪,因为
I=0:I++
正在返回
I
,而不仅仅是设置它。非常感谢你的答案和解释谢谢你的帮助@sebj:)非常感谢你的详细解释!对像我这样的学习者很有帮助!非常感谢!