CountUp 函数无法从 0 递增到输入时间
CountUp Function failing to increment from 0 to inputted time
本期详情及代码如下:
问题:
countUp 函数运行没有错误,但是 UI 显示输入的数字,之前没有任何内容。
当前方法:
const countUp = () => {
let inputTime = document.getElementById("input").value; // 5
console.log(inputTime);
if (inputTime != 0) { // 5 != 0
document.getElementById("countupClock").innerHTML = 0;
let run = run => { // 5 > 0
let clock = document.getElementById("countupClock");
clock.value = clock.value < inputTime ? clock.value++ : inputTime;
clock.innerHTML = clock.value;
}
setInterval(run(), 3000);
} else {
clearInterval(run);
};
}
这就是我目前所掌握的实际 CountUp 函数。
点击事件在这里处理:
// Begin Countup:
let btn = document.getElementById("enterTime");
btn.addEventListener("click", () => {
console.log("New Time Entered");
countUp();
});
那么这是HTML:
<html>
<body>
<div class="controls">
<p id="countup">Countup</p>
</div>
<div class="center-controls">
<input type="number" id="input" placeholder="Enter a number">
</input>
</div>
<div class="right-controls">
<button id="enterTime">START</button>
</div>
</div>
</main>
<div class="clocksContainer">
<!-- Displays Time counting down -->
<span id="countupClock"></span>
<!-- A Field that allows you to enter a time to countup from -->
</div>
<script src="script.js"></script>
</body>
</html>
预期输出:
UI 上的数字应从 0 递增到用户输入的数字。在这种情况下,5.
clock
变量是跨度元素,它没有value
属性。只需执行 clock.innerHTML++
即可增加显示的计数器值。此外,您应该保存 setInterval
值并在 clearInterval
.
中使用它
const countUp = () => {
let interval;
let inputTime = document.getElementById('input').value; // 5
console.log(inputTime);
if (inputTime != 0) {
document.getElementById('countupClock').innerHTML = 0;
let run = () => {
let clock = document.getElementById('countupClock');
if (clock.innerHTML < inputTime) {
clock.innerHTML++;
console.log('Counter value:', clock.innerHTML);
} else {
clearInterval(interval);
console.log('Cleared interval');
}
};
interval = setInterval(run, 1000);
}
};
本期详情及代码如下:
问题: countUp 函数运行没有错误,但是 UI 显示输入的数字,之前没有任何内容。
当前方法:
const countUp = () => {
let inputTime = document.getElementById("input").value; // 5
console.log(inputTime);
if (inputTime != 0) { // 5 != 0
document.getElementById("countupClock").innerHTML = 0;
let run = run => { // 5 > 0
let clock = document.getElementById("countupClock");
clock.value = clock.value < inputTime ? clock.value++ : inputTime;
clock.innerHTML = clock.value;
}
setInterval(run(), 3000);
} else {
clearInterval(run);
};
}
这就是我目前所掌握的实际 CountUp 函数。
点击事件在这里处理:
// Begin Countup:
let btn = document.getElementById("enterTime");
btn.addEventListener("click", () => {
console.log("New Time Entered");
countUp();
});
那么这是HTML:
<html>
<body>
<div class="controls">
<p id="countup">Countup</p>
</div>
<div class="center-controls">
<input type="number" id="input" placeholder="Enter a number">
</input>
</div>
<div class="right-controls">
<button id="enterTime">START</button>
</div>
</div>
</main>
<div class="clocksContainer">
<!-- Displays Time counting down -->
<span id="countupClock"></span>
<!-- A Field that allows you to enter a time to countup from -->
</div>
<script src="script.js"></script>
</body>
</html>
预期输出: UI 上的数字应从 0 递增到用户输入的数字。在这种情况下,5.
clock
变量是跨度元素,它没有value
属性。只需执行 clock.innerHTML++
即可增加显示的计数器值。此外,您应该保存 setInterval
值并在 clearInterval
.
const countUp = () => {
let interval;
let inputTime = document.getElementById('input').value; // 5
console.log(inputTime);
if (inputTime != 0) {
document.getElementById('countupClock').innerHTML = 0;
let run = () => {
let clock = document.getElementById('countupClock');
if (clock.innerHTML < inputTime) {
clock.innerHTML++;
console.log('Counter value:', clock.innerHTML);
} else {
clearInterval(interval);
console.log('Cleared interval');
}
};
interval = setInterval(run, 1000);
}
};