您的位置:首页 > Web前端 > JavaScript

倒计时定时器内删除元素节点问题

2017-08-10 12:06 369 查看
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{margin: 0; padding: 0;}
#ff{width: 500px; height: 100px;margin: 100px auto;text-align: center;line-height: 100px; background: #999999;}
</style>
<script type="text/javascript">
window.onload = function () {

var ff = document.getElementById("ff");
djs();
var dong = setInterval(djs,1000);
function djs () {

var new_time = new Date(2017,7,10,10,23,0).getTime();
var now_time = new Date().getTime();
var times = new_time - now_time;
if (times > 0) {

temp();

} else if (times<0&×>-(5*1000)){ //活动时间 5s

ff.innerHTML = "活动进行中";

} else {
clearInterval(dong);

ff.innerHTML = "活动已结束";
setTimeout(function(){
ff.parentNode.removeChild(ff);//执行完报错
},3000)

}

//条件成立倒计时方法
function temp (){
//换算成毫秒数

time = times/1000;

//获得天数

var tian = parseInt(time/86400);

//不到一天剩下的秒数

time %= 86400;

//获得小时数

var shi = parseInt(time/3600);

//获得不到一小时 的秒数

time %= 3600;

//获得分钟数

var fen = parseInt(time/60);

//获得不到一分钟的秒数

var miao = parseInt(time%60);

ff.innerHTML = "距离活动时间还有:"+tian+"天"+shi+"时"+fen+"分"+miao+"秒";
}

}

}

</script>
</head>
<body>
<p id="ff"></p>
</body>
</html>


常规倒计时,本来写到else的时候就应该完了,但脑子一想还差点什么,就想着倒计时结束后三秒把ff这个节点删掉,写了个

else {

clearInterval(dong);

ff.innerHTML = "活动已结束";

setTimeout(function(){

ff.parentNode.removeChild(ff);//执行完报错

},3000)

}


发现浏览器解析完后删除ff后还执行了一次,因为ff节点已经删除所以报错,为什么已经把定时器删除了最后还执行了一次?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息