我在DIV中有一个倒计时页面,ID =“count”
我想监视这个div值,当它达到0时,会弹出一个警告。
我到目前为止已经开始了
if(parseInt(document.getElementById('count').innerHTML) < 2){}
但我不知道如何“倾听”div的改变
任何人都可以帮助我吗?
顺便说一句:它需要是纯粹的javascript,没有像jquery这样的东西。
更新
我在原始代码中没有这么说。这是一个外部页面,我正在尝试在地址栏中运行此代码
答案 0 :(得分:2)
据推测,您有一个基于 setInterval 或 setTimeout 运行的函数。当函数变为零时,让该函数调用你的函数。
如果你不能这样做,你可以尝试优化轮询 - 使用 setInterval 读取值,估计它可能接近零,再次检查并估计它何时可能为零,等等当它为零时,做你的事。
有DOM突变事件,但它们已被弃用,无论如何都从未得到很好的支持。此外,当内容发生变化时,它们会被调用,因此对于您的场景来说可能太频繁了。
答案 1 :(得分:1)
如果您要自己更改 #count 的值,请从该位置调出警报。如果不使用:
window.setInterval(function(){
if(parseInt(document.getElementById('count').innerHTML) < 2) alert('Alarm!');
},1000); // 1s interval
<强>更新强> 要清除该间隔:
var timer = window.setInterval(function(){
if(parseInt(document.getElementById('count').innerHTML) < 2) {
alert('Alarm!');
window.clearInterval(timer);
}
},1000); // 1s interval
//or by using non-anonymous function
function check(){
if(parseInt(document.getElementById('count').innerHTML) < 2) {
alert('Alarm!');
window.clearInterval(timer);
}
}
var timer = window.setInterval(check,1000);
答案 2 :(得分:0)
监视这个的唯一有效方法是转到实际更改div的代码并修改它或挂钩它以在更新div的内容时调用你的函数。 div的内容随时改变,没有通用的通知机制。考虑修改变更的来源,您将获得更多成功。
除了更改源之外,我知道的唯一选项是使用间隔计时器来“轮询”div的内容,以便在更改时注意到。但是,这非常低效,并且在注意到实际变化时总会有一些固有的延迟。电池续航时间(笔记本电脑或智能手机)不断运行也是不利的。
答案 3 :(得分:0)
您不会听div
进行更改。 div
只是用于直观表示程序的状态。
相反,在任何计时事件倒数的情况下,使用诸如......的条件
if (i < 2) {
// ...
}