Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使javascript代码循环以重复文本?_Javascript_Html - Fatal编程技术网

如何使javascript代码循环以重复文本?

如何使javascript代码循环以重复文本?,javascript,html,Javascript,Html,我在网上找到了这段代码,但当消息用完时,它似乎并没有从头开始。它只是停止了。我怎样才能解决这个问题 <script> $(document).ready(function() { function nextMsg() { if (messages.length == 0 ) { } else { $('#message').html(messages.pop()).fadeIn(2000).delay(1000).fadeOut(2

我在网上找到了这段代码,但当消息用完时,它似乎并没有从头开始。它只是停止了。我怎样才能解决这个问题

<script>
  $(document).ready(function() {
    function nextMsg() {
      if (messages.length == 0 ) {
      } else {
        $('#message').html(messages.pop()).fadeIn(2000).delay(1000).fadeOut(2000,nextMsg);
    }
};

    var messages = [
      "For the love of music.",
      "We want you to succeed, that's why we're here.",
      "You make the music, we'll do the rest.",
      "Get your music out, EVERYWHERE.",
      "We are here to change the game."
    ].reverse();

    $('#message').hide();
      nextMsg();
    });
</script>

$(文档).ready(函数(){
函数nextsg(){
如果(messages.length==0){
}否则{
$('#message').html(messages.pop()).fadeIn(2000).delay(1000).fadeOut(2000,nextMsg);
}
};
变量消息=[
“为了对音乐的热爱。”,
“我们希望你成功,这就是我们在这里的原因。”,
“你来做音乐,剩下的我们来做。”,
“把你的音乐放出去,到处都是。”,
“我们是来改变游戏的。”
].reverse();
$(“#消息”).hide();
nextsg();
});

我希望它再次从var=messages的顶部开始,当没有更多字符串可读取时

您可以使用模数运算符和数组的长度来引起内容循环

代码没有循环的原因是它使用了pop(),它从数组中删除了内容-因此一个循环就删除了所有内容-这样做允许计数器无限递增,但总是返回一个基于数组长度的索引(使用模运算符)

这样,数组不会发生变异,引号将无休止地循环

$(文档).ready(函数(){
变量消息=[
“为了对音乐的热爱。”,
“我们希望你成功,这就是我们在这里的原因。”,
“你来做音乐,剩下的我们来做。”,
“把你的音乐放出去,到处都是。”,
“我们是来改变游戏的。”
].reverse();
var计数器=0;
var len=messages.length;
函数nextsg(){
var消息=消息[计数器%len];
计数器++;
$('#message').html(message).fadeIn(2000).delay(1000).fadeOut(2000,nextMsg);
};
$(“#消息”).hide();
nextsg();
});


您缺少再次转到数组开头的逻辑

$(文档).ready(函数(){
变量计数=0
函数nextsg(){
如果(messages.length==0){
}否则{
计数=计数<消息长度?计数+1:0
$('#message').html(messages[count]).fadeIn(2000).delay(1000).fadeOut(2000,nextMsg);
}
};
变量消息=[
“为了对音乐的热爱。”,
“我们希望你成功,这就是我们在这里的原因。”,
“你来做音乐,剩下的我们来做。”,
“把你的音乐放出去,到处都是。”,
“我们是来改变游戏的。”
].reverse();
$(“#消息”).hide();
nextsg();
});

基本逻辑

它使用jquery,别忘了将jquery导入到项目中

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
作为要显示的参数

因为参数是*ID*,所以您只需要使用ID作为参数来创建HTML元素

<div id="message"></div>
然后是HTML元素:

<div class="message"></div>

您没有添加
html
内容请将此内容添加到您的代码中

我添加了一个片段来重复数据

<div id="message"></div>

<div class="message"></div>
<div id="message"></div>