倒计时定时器内删除元素节点问题
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节点已经删除所以报错,为什么已经把定时器删除了最后还执行了一次?
相关文章推荐
- 面试中常见链表问题11:在链表中删除给定元素值的节点
- 面试中常见链表问题4:删除链表中重复元素1
- c++ vector遍历删除元素 出错的问题
- 约瑟夫问题(没有头节点的循环链表2——删除法)
- Lua、table表的遍历过程中删除remove元素会出现的问题及解决
- std::map遍历删除某些元素问题
- 删去单链表中第i个节点的操作。删除单链表中数据域为x的前驱元素。数据结构。
- android中listview的元素删除问题
- JS实现添加,替换,删除节点元素的方法
- hadoop2.X动态添加删除节点及相关问题总结
- DOM中删除一个节点,需要点击两次的问题
- layer.conifrm 非阻塞执行 ztree删除节点 问题
- AdvancedDataGrid当子节点全部删除后仍显示文件夹图标的问题
- 删除链表中节点的元素等于val的节点
- 在无头节点的单链表里删除元素
- sql中节点元素的删除
- 链表问题 删除链表的中间节点和a/b处的节点
- List循环删除元素时错漏问题
- js 添加 和删除节点的方法(只在IE上可以,求助,能解决兼容性问题)
- 带头节点循环单链表的操作(创建,保序插入,指定插入,删除指定表元,删除相同元素,统计某元素表元个数)