Javascript 在一个无休止的循环中,一段又一段地改变文本

Javascript 在一个无休止的循环中,一段又一段地改变文本,javascript,jquery,Javascript,Jquery,我有一段时间后想要更改的文本。我有以下工作: function nextMsg() { if (messages.length == 0) { } else { $('#message').html(messages.pop()).fadeIn(500).delay(1000).fadeOut(500, nextMsg); } }; var messages = [ "sleep", "eat", "drink", "r

我有一段时间后想要更改的文本。我有以下工作:

function nextMsg() {
    if (messages.length == 0) {

    } else {
        $('#message').html(messages.pop()).fadeIn(500).delay(1000).fadeOut(500, nextMsg);
    }
};

var messages = [
    "sleep",
    "eat",
    "drink",
    "read",
].reverse();

$('#message').hide();
nextMsg();

我的问题:
我想不断重复这些信息。换句话说,当显示最后一条消息时,从第一条消息开始再次开始循环,创建一个无休止的循环。代码中需要更改/添加哪些内容?

使用
计数器
%

var计数器=0;
函数nextsg(){
$('#message').html(messages[counter%messages.length]).fadeIn(500).delay(1000).fadeOut(500,nextsg);
++计数器;
};
变量消息=[
“睡眠”,
“吃”,
“喝”,
“读”,
];
$(“#消息”).hide();
nextsg()


要做的事情:

类似于maybe的东西

JS

var i=0;

function nextMsg() {
    $('#message').html(messages[i]).fadeIn(500).delay(1000).fadeOut(500, nextMsg);
    i = (++i)%messages.length;
};

var messages = [
    "sleep",
    "eat",
    "drink",
    "read",
].reverse();

$('#message').hide();
nextMsg();

我希望这对你有用

var fadeLoop=函数($el){
$el.fadeOut(1000,函数(){
var$next=$el.next();
如果($next.length==0){
$next=$el.兄弟姐妹(“:first”);
}
$next.fadeIn(1000,函数(){
法德洛普(下一个);
});
});
};
$(文档).ready(函数(){
$(“#elm1”).sibbins().hide();
fadeLoop($(“#elm1”);
});

要做的事情:
睡觉
吃
喝
阅读

也许可以使用messages[(i++)%n]代替messages.pop()。
messages.pop()
正在删除数组元素,而是使用一个索引,该索引按照LiranBo的建议递增。在这个答案中,您不需要
.reverse()
。提问者只使用了
reverse
,因为在他的原始代码中,他每次都使用
messages.pop()
来获取最后一个元素。谢谢,这非常有效!!!就像下面Manoj Kumar的回答一样,因为它可以轻松地改变你想要的任何东西,比如信息、颜色、图像等,因为它还有一个额外的优势,可以改变你想要的任何东西,而不仅仅是信息。虽然我理解我的问题是指信息,但我意识到。但这是一个额外的优势,你不觉得吗?谢谢你的帮助,人造丝。我实际上正在使用你的解决方案,但是如果我还想更改其他内容,我可以使用其他解决方案。谢谢!!Take away.reverse()将从“sleep”运行到“read”。