javascript - 每隔一段时间将项目从 JavaScript 数组中逐一输出到 HTML 文本

标签 javascript html arrays

第一次 JavaScript 尝试。创建了一个我想输出到 HTML 中的#id 元素的单词数组。希望单词按顺序循环,并且在一定时间间隔内一次一个。在 array.length 的末尾,我希望单词停在第二项 [1] 上。

我发现成功使用代码使单词随机循环,但我真的想让它们按顺序循环,并在项目 [1] 处停止。

var arr = new Array ("dog.", "owner.", "partner.", "community.", "park.", "baby.", "neighbor.", "friend.", "family.", "vet.", "grandparent.", "party.");

var i = 0;

function nextItem() {
  i = i + 1;
  i = i % arr.length;
  return arr[0];  
}

window.addEventListener('load', function () {
  document.getElementById('rotate').textContent = arr[0];
});

setInterval(nextItem, 500);

我希望代码循环遍历项目,但我只看到项目 [1] 闪烁,然后项目 [0] 出现并停留。

最佳答案

首先,您应该将对 setInterval 的调用分配给一个变量 - 这样您就可以在遍历数组后立即停止间隔。在 nextItem 函数中,您可以决定如果 i 变量的增量超过数组的大小会发生什么。如果确实将其设置为 1 并清除间隔。

这是一个例子:

var arr = new Array("dog.", "owner.", "partner.", "community.", "park.", "baby.", "neighbor.", "friend.", "family.", "vet.", "grandparent.", "party.");

var i = 0;
var interval;

function nextItem() {
  if (i + 1 < arr.length) {
    i += 1;
  } else {
    i = 1;
    clearInterval(interval);
  }
  document.getElementById('rotate').textContent = arr[i];
}

interval = setInterval(nextItem, 500);
document.getElementById('rotate').textContent = arr[i];
<p id="rotate"></p>

关于javascript - 每隔一段时间将项目从 JavaScript 数组中逐一输出到 HTML 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57280819/

相关文章:

json 网络 token + img src

php - 根据 PHP 中的匹配列值合并数组

Java - 按步骤对数组进行切片

c++ - 如何在一维数组的每个元素中有多个 int 值?

javascript - 按 "Submit"按钮1次,有几次进入循环

javascript - 不使用 concat apply 收集嵌套属性中的数组

html - 如何在 Bootstrap block 之间设置更多空间?

javascript - 在node js中获取post请求的参数

javascript - 使用 jquery 或 javascript 将表单值插入到 SQL 查询中

javascript - 为笔记本电脑和移动设备使用不同的元素?