javascript - 为什么我的计数器功能没有增加?
问题描述
基本上我想用javascript倒计时,按照我的逻辑,下面的代码应该可以工作,但由于未知原因它不起作用。有人可以帮我弄清楚代码有什么问题吗?这有点烦人。
function startCounter(time)
{
var counter= document.getElementById("counter").innerHTML;
var min=0;
setTimeout(function()
{
for(i = 0; i < time; i++)
{
document.getElementById("counter").innerHTML = min+ ":" +i;
if(i == 59) {
min++;
i = 0
document.getElementById("counter").innerHTML = min+ ":" +i;
}
}
}, 1000)
};
startCounter(89);
<p id="counter">0:00</p>
解决方案
您正在创建一个无限循环。
您正在包装这部分:
if(i == 59) {
min++;
i = 0
document.getElementById("counter").innerHTML = min+ ":" +i;
}
在使用 i 作为限制器的 for 循环中。每次 i 达到 59 时,您都将其重置为 0,然后循环继续。
// Add your code here
function startCounter(time)
{
var counter= document.getElementById("counter").innerHTML;
var min = parseInt(time / 60);
var seconds = time % 60;
setInterval(function()
{
seconds++;
document.getElementById("counter").innerHTML = min+ ":" +seconds;
if(seconds == 60) {
min++;
seconds = 0
document.getElementById("counter").innerHTML = min+ ":" +seconds;
}
}, 1000)
};
console.log("Start");
startCounter(89);
<p id="counter">
</p>
推荐阅读
- sql - SQL:A列的B列条目也在A列中->将A中A的B条目的C列属性与原始A匹配
- php - 关于模型函数的 PHP/Codeigniter Dry 原理
- python - Python:关于打包应用程序 docker vs pyinstaller 的问题
- emacs - 用于在 OSX 上 iTerm2 中的 emacs 中导航括号的 Cm-% 键绑定
- nginx - 在 nginx 中设置多个域时访问错误
- amazon-web-services - 自定义 UI 的 Cognito 授权代码授予流程
- php - Laravel 5.8.* 来自本地服务器的验证邮件错误:swift_transportexception (554)
- reactjs - React-final 表单:提交的复选框只能选择一个?
- node.js - 有没有办法使用 API 或任何第三方模块/工具获取 Instagram 直接消息?
- python - 我尝试在 django 中制作一种动态形式,根据用户更改模板中的字段数。截图如下