通过单击按钮减少数字直到达到 0
Decrement number by clicking button until reaching 0
我正在做一个项目,有点卡住了。我确信我遗漏了什么,但我并没有遗漏什么。
我提取了我正在做的事情的一般概念并将其放到 JS 中 fiddle。
所以基本上,我想在每次单击按钮时(使用 vanilla JS)将显示的数字 (200) 减去指定数字范围内随机生成的数字。让它工作一点。单击按钮时,它会递减。
但是我想继续递减它,直到显示的数字为 0。然而,我 运行 遇到的问题是,每次单击按钮时,显示的数字都会更新,但仍会从 200 中减去,而不是来自更新后的值。
例如,我可以单击一次,数字将从 200 跳到 189。当我再次单击时,数字实际上会跳到 195,这意味着它是从 200 中减去而不是减去新生成的数量来自 189.
Jsfiddle: https://jsfiddle.net/miguerurso/0wmtgd67/5/
html:
<head></head>
<body>
<div id="number" style="font-size: 2em;"></div>
<button>decrement</button>
</body>
JS:
const numberCont = document.getElementById('number');
const button = document.querySelector('button');
let x = 200;
numberCont.innerHTML = x;
button.addEventListener("click", function(){
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
const randomNumResult = randomNum(7, 12)
let updatedX = x - randomNumResult;
numberCont.innerHTML = updatedX;
})
从 x
中减去它,而不是将它放入一个新变量中。
https://jsfiddle.net/sean7777/fvgchjb3/1/
您还需要将 updateX
分配给 x。目前您只将它提供给元素。试试这个。
const numberCont = document.getElementById('number');
const button = document.querySelector('button');
let x = 200;
numberCont.innerHTML = x;
button.addEventListener("click", function(){
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
const randomNumResult = randomNum(7, 12)
x = Math.floor(0, x - randomNumResult);
numberCont.innerHTML = x;
}
您实际上并没有将 x
的值更改为新的减去值。您必须这样做才能继续从变量中减去。我重写了您的事件侦听器以更改 x
的值而不低于 0.
button.addEventListener("click", function(){
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
x = Math.max(x - randomNum(7, 12), 0);
numberCont.innerHTML = x;
})
只改一行代码:
let updatedX = x - randomNumResult;
numberCont.innerHTML = updatedX;
与:
x = x - randomNumResult;
numberCont.innerHTML = x;
我正在做一个项目,有点卡住了。我确信我遗漏了什么,但我并没有遗漏什么。
我提取了我正在做的事情的一般概念并将其放到 JS 中 fiddle。
所以基本上,我想在每次单击按钮时(使用 vanilla JS)将显示的数字 (200) 减去指定数字范围内随机生成的数字。让它工作一点。单击按钮时,它会递减。
但是我想继续递减它,直到显示的数字为 0。然而,我 运行 遇到的问题是,每次单击按钮时,显示的数字都会更新,但仍会从 200 中减去,而不是来自更新后的值。
例如,我可以单击一次,数字将从 200 跳到 189。当我再次单击时,数字实际上会跳到 195,这意味着它是从 200 中减去而不是减去新生成的数量来自 189.
Jsfiddle: https://jsfiddle.net/miguerurso/0wmtgd67/5/
html:
<head></head>
<body>
<div id="number" style="font-size: 2em;"></div>
<button>decrement</button>
</body>
JS:
const numberCont = document.getElementById('number');
const button = document.querySelector('button');
let x = 200;
numberCont.innerHTML = x;
button.addEventListener("click", function(){
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
const randomNumResult = randomNum(7, 12)
let updatedX = x - randomNumResult;
numberCont.innerHTML = updatedX;
})
从 x
中减去它,而不是将它放入一个新变量中。
https://jsfiddle.net/sean7777/fvgchjb3/1/
您还需要将 updateX
分配给 x。目前您只将它提供给元素。试试这个。
const numberCont = document.getElementById('number');
const button = document.querySelector('button');
let x = 200;
numberCont.innerHTML = x;
button.addEventListener("click", function(){
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
const randomNumResult = randomNum(7, 12)
x = Math.floor(0, x - randomNumResult);
numberCont.innerHTML = x;
}
您实际上并没有将 x
的值更改为新的减去值。您必须这样做才能继续从变量中减去。我重写了您的事件侦听器以更改 x
的值而不低于 0.
button.addEventListener("click", function(){
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
x = Math.max(x - randomNum(7, 12), 0);
numberCont.innerHTML = x;
})
只改一行代码:
let updatedX = x - randomNumResult;
numberCont.innerHTML = updatedX;
与:
x = x - randomNumResult;
numberCont.innerHTML = x;