【发布时间】:2021-09-28 21:24:54
【问题描述】:
我最近在0 和1 之间生成数字,它与两个btn 之一匹配的index 将被视为幸运并将color 更改为green 否则color 更改到red 和文字将显示其他是幸运的。
一切正常,但文本仅适用于 1 btn,即它会显示正确的文本,因为我很幸运,但对于其他 btn 没有正确意义
点击第一个btn可以看到:正确时,即绿色文字应该是“我很幸运”,但它显示“其他btn很幸运”
var btnLuck = document.getElementsByTagName("BUTTON");
function randomNumber()
{
var randNum = Math.floor(Math.random() * 2);
document.getElementById("demo").innerHTML = randNum;
console.log('randNum =',randNum ) // ------------------
for (let i = 0; i < btnLuck.length; i++)
{
console.log('loop i value-- >', i ) // ------------------
if (i == randNum)
{
console.log('(i == randNum) is true') // ------------------
document.getElementById("demo").innerHTML = "You are lucky (" + randNum + ")";
btnLuck[i].style.backgroundColor = "green"
}
else
{
console.log('(i == randNum) is false') // ------------------
document.getElementById("demo").innerHTML = "Other btn is lucky (" + randNum + ")";
btnLuck[i].style.backgroundColor = "red"
} } }
<button onclick="randomNumber()">Lucky number 0</button>
<button onclick="randomNumber()">Lucky number 1</button>
<div id="demo"></div>
【问题讨论】:
-
我在您的代码中添加了一些
console.log()用于显示执行步骤——您可以使用这种旧技术来调试您自己的代码 -
在你的脑海中跟踪脚本的执行,或者使用浏览器的调试器,你会看到发生了什么。
-
这能回答你的问题吗? For loop only outputs last iteration
标签: javascript html