javascript - 在 onclick 函数上显示数组递增的元素
问题描述
我正在尝试在单击时一一打印数组元素。这是我实现它的代码。代码的问题是,在第一次单击时它不会增加值,而它假设用新的 +1 数组元素替换旧数组元素。
function myFunction() {
var i = 0;
i++;
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits[i];
}
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
解决方案
您总是将i
变量设置为 0。将该变量放在myFunction
范围之外,它就会起作用。
var i = 0;
var fruits = ["Banana", "Orange", "Apple", "Mango"];
function myFunction() {
if (i >= fruits.length) i = 0;
document.getElementById("demo").innerHTML = fruits[i];
i++;
}
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
</script>
但不要忘记,您还可以将数组和元素选择器移出函数范围,使其更简单(并且可能更快)。此外,在再次递增之前检查您是否不会超出数组的边界i
。
推荐阅读
- javascript - 避免 NgRx Reducer 中的状态突变
- angularjs - AngularJS E2E 测试错误
- hadoop - Hive 中间隔之间的范围
- python - reassign a python function via __call__ to use another function
- php - Multiple users' session in same browser
- mysql - 从 MySQL 读取位数据类型并使用 AWS Glue 转换为 Redshift 的问题
- swift - 协议中定义的变量不符合多个协议
- ruby - Is there a way to abort a test cleanly?
- macos - ssh concatenating keyboard characters
- javascript - 正则表达式,包括 unwated 数字