JavaScript倒计时计时器出现2个错误
Getting 2 errors with a JavaScript Countdown Timer
我创建了一个倒数计时器,每天倒数到下午5点,然后在第二天重置到下午5点。
计时器工作完美,但我从我正在努力解决的代码中得到2个错误。
代码如下:
function startTimer(display) {
var date = new Date();
var h17 = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 17);
if(date.getHours() >= 17) {
h17.setDate(h17.getDate()+1);
}
h17 = h17.getTime();
var diff,
hours,
minutes,
seconds;
function timer() {
diff = (((h17 - Date.now()) / 1000) | 0);
// Setting and displaying hours, minutes, seconds
hours = (diff / 3600) | 0;
minutes = ((diff % 3600) / 60) | 0;
seconds = (diff % 60) | 0;
hours = hours < 10 ? "0" + hours : hours;
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = hours + ":" + minutes + ":" + seconds;
};
timer();
setInterval(timer, 1000);
}
window.onload = function () {
var display = document.querySelector('#time');
startTimer(display);
};
错误如下:第14行:diff = (((h17 - Date.now()) / 1000) | 0);
返回消息:"对象不支持此属性或方法:第14行"
和第25行:display.textContent = hours + ":" + minutes + ":" + seconds;
返回消息"Cannot set property 'textContent' of null"
原来问题来自于将输出绑定到html中的#time ID。
由于我把脚本放在,只在某些页面上使用它,错误来自没有<div id="time">
的页面,所以显示为空。
在运行脚本之前,我已经通过检查元素ID是否存在来修复这个问题。
if(document.getElementById("time")){
var display = document.querySelector('#time');
startTimer(display);
} else {
}
相关文章:
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 有效形式-始终只显示1个错误[角度]
- AJAX 请求不会在 400 个错误查询上执行失败
- 最后,在 rxjs 序列上,在第一个错误时执行
- 第二个引导程序导航栏链接打开第一个(错误的)导航栏;jquery
- 尝试使用mongoose和async保存到DB时出现多个错误
- 1个错误弹出窗口.试过调试javascript,想过放弃
- JavaScript 多个错误消息
- 通过表格在 Flask 上发布数据会给出 400 个错误请求
- 使用表单验证 - 显示多个错误
- async.auto:在第一个错误后停止整个链
- Python Flask 应用程序,AJAX 帖子收到 400 个错误请求
- 当 JSLint 返回 45 个错误,但代码仍然有效时,这意味着什么?
- I'我试图使用jquery,但出现了两个错误:
- JSON ajax发布数据-获取400个错误的请求消息
- JSLint已经达到了1000个错误的限制,或者它被早期的错误所混淆,并且可以't继续
- 我有两个错误,有人能帮我找到吗
- 如何修复/调试间歇性返回500个错误的AJAX脚本
- Node.js域中有多个错误事件调用
- 如何处理$http.get中的多个错误