查找了一会 别的博主说是因为计时器放置的位置不对 应该在body最下边放置 结果照做之后还是报错。
然后我意识到了在获取元素时元素的类名前没有加点 真的是粗心大意了 这也提醒了我们在注册事件时类名前一定要加点。哈哈哈哈哈哈~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
span{
/* position: absolute; */
float: left;
width: 40px;
height: 40px;
background-color: black;
color: #999;
border: 1px solid white;
}
.clearfix::after,
.clearfix::before {
content: '';
display: block;
clear: both;
}
</style>
</head>
<body>
<div>
<span class="hour">1</span>
<span class="minute">2</span>
<span class="second">3</span>
</div>
<script>
var hour = document.querySelector('.hour');
var minute = document.querySelector('.minute');
var second = document.querySelector('.second');
var inputTime = +new Date('2022-3-15 22:00:00');
setInterval(countDown,1000);
function countDown() {
var nowTime = +new Date(); // 返回一个当前时间的总毫秒数
var times = (inputTime - nowTime) / 1000; // times是剩余时间总的毫秒
var h = parseInt(times / 60 / 60 % 24); // 计算小时
h = h < 10 ? '0' + h : h;
hour.innerHTML = h;
var m = parseInt(times / 60 % 60); // 计算分数
m = m < 10 ? '0' + m : m;
minute.innerHTML = m;
var s = parseInt(times % 60); // 计算当前秒数
s = s < 10 ? '0' + s : s;
second.innerHTML = s;
}
</script>
</body>
</html>