帮我在这串代码中实现多次调用不同元素的同一id var day = document.getElementById('day'); var hour = document.getElementById('hour'); var minute = document.getElementById('minute'); var second = document.getElementById('second'); var inputtime = +new Date('2023-6-8 11:00:00');//自定义的毫秒数 timer();//先调用一次,避免第一次的卡顿 setInterval(timer,1000); function timer(){ var nowtime = +new Date();//返回当前的总毫秒数 var time = (nowtime) / 1000 ;// 1秒=1000毫秒 剩余需要倒计时的总秒数 var d = parseInt(time/60/60/24%30) var h = parseInt(time/60/60%24); var m = parseInt(time/60%60); var s = parseInt(time%60); // d = d < 10 ? '0' + d : d; day.innerHTML = '限时 ' + d + '天'; h = h < 10 ? '0' + h : h;//如果小于10前面补零,大于10直接填写 hour.innerHTML = h + ':'; m = m < 10 ? '0' + m : m;//如果小于10前面补零,大于10直接填写 minute.innerHTML = m + ':'; s = s < 10 ? '0' + s : s;//如果小于10前面补零,大于10直接填写 second.innerHTML = s ; }
时间: 2024-02-25 14:58:14 浏览: 62
纯JS脚本实现倒计时.docx
可以将这些元素的id存放在一个数组中,然后使用循环来遍历数组,获取每个元素的id,并将其赋值给相应的变量。修改后的代码如下:
```
var ids = ['day', 'hour', 'minute', 'second'];
var elements = {};
for (var i = 0; i < ids.length; i++) {
elements[ids[i]] = document.getElementById(ids[i]);
}
var inputtime = +new Date('2023-6-8 11:00:00');//自定义的毫秒数
timer();//先调用一次,避免第一次的卡顿
setInterval(timer,1000);
function timer(){
var nowtime = +new Date();//返回当前的总毫秒数
var time = (nowtime - inputtime) / 1000 ;// 1秒=1000毫秒 剩余需要倒计时的总秒数
var d = parseInt(time/60/60/24%30)
var h = parseInt(time/60/60%24);
var m = parseInt(time/60%60);
var s = parseInt(time%60);
// d = d < 10 ? '0' + d : d;
elements['day'].innerHTML = '限时 ' + d + '天';
h = h < 10 ? '0' + h : h;//如果小于10前面补零,大于10直接填写
elements['hour'].innerHTML = h + ':';
m = m < 10 ? '0' + m : m;//如果小于10前面补零,大于10直接填写
elements['minute'].innerHTML = m + ':';
s = s < 10 ? '0' + s : s;//如果小于10前面补零,大于10直接填写
elements['second'].innerHTML = s ;
}
```
这样,你就可以通过调用 `elements['day']`、`elements['hour']`、`elements['minute']` 和 `elements['second']` 来分别获取不同的元素,而不需要分别调用 `document.getElementById()` 获取每个元素。
阅读全文