javascript - 在事件单击时按顺序一一显示数组的元素
问题描述
我想按顺序在事件点击中一一显示每个项目。默认情况下,它是第一个元素,当单击按钮时,它应该显示第二个,第三个等......当它到达最后一个元素时,它应该再次重复,并且它应该在单击后始终按顺序显示。
var texts = ["one", "two", "three", "four", "five"];
var btn = document.getElementById("myBtn");
btn.addEventListener("click", changeText);
var text = document.getElementById("myText");
text.innerHTML = texts[0];
function changeText(){
for( var i = 0; i < texts.length; i++ ){
text.innerHTML = texts[i];
}
return;
}
<p id="myText"></p>
<button type="button" id="myBtn">Start</button>
解决方案
您可以省略 for 循环,因为它迭代到最后并显示最后一项。
取一个全局变量index
,并按数组的长度递增和调整,以仅获取数组的有效值。
return
顺便说一句,函数末尾的单个语句没有不同的值undefined
是不必要的,因为在 Javascript 中返回任何 function undefined
,只要它不用作构造函数(与 连接new
)。如果从不使用返回的值,则没有必要。
var texts = ["one", "two", "three", "four", "five"],
btn = document.getElementById("myBtn"),
text = document.getElementById("myText"),
index = 0;
btn.addEventListener("click", changeText);
text.innerHTML = texts[0];
function changeText() {
index++;
index %= texts.length
text.innerHTML = texts[index];
}
<p id="myText"></p>
<button type="button" id="myBtn">Start</button>
推荐阅读
- javascript - 如何隐藏 DataTables 1.09 中呈现的文本?
- javascript - 在 Firebase Cloud Function 上抛出新函数。 https.HttpsError 被拒绝为客户端上的内部错误
- spring - 在tomcat上部署后没有xml的spring - 404
- perl - perl:符号查找错误:/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0:未定义符号:SSLeay
- r - 如何为非重复行创建唯一标识符?
- excel - 交叉引用的 VLOOKUP 返回列
- excel - Excel粘贴多次VBA
- ios - 插入内容时,UITableView 滚动无法正常工作
- excel - 你好,有没有办法在excel中使用转置函数,不需要固定的单元格范围
- python - pymongo 获取所有文件