如何使用javascript监控div值的更改?

如何使用javascript监控div值的更改?,javascript,Javascript,我有一个id为“count”的DIV中有倒计时的页面 我想监控这个div值,所以当它达到0时,会弹出一个警报 到目前为止,我已经走了 if(parseInt(document.getElementById('count').innerHTML) < 2){} if(parseInt(document.getElementById('count').innerHTML)

我有一个id为“count”的DIV中有倒计时的页面

我想监控这个div值,所以当它达到0时,会弹出一个警报

到目前为止,我已经走了

if(parseInt(document.getElementById('count').innerHTML) < 2){}
if(parseInt(document.getElementById('count').innerHTML)<2{}
但我不知道如何“倾听”div的变化

有人能帮我吗

顺便说一句:它需要使用纯javascript,没有jquery之类的东西

更新:


我在原始代码中没有这样的说法。这是一个外部页面,我试图在地址栏运行此代码

如果您正在更改#自己计数,请从该位置调用警报。如果不使用:

window.setInterval(function(){
    if(parseInt(document.getElementById('count').innerHTML) < 2) alert('Alarm!');
},1000); // 1s interval
window.setInterval(函数(){
if(parseInt(document.getElementById('count').innerHTML)<2)警报('Alarm!');
},1000); // 1s间隔
更新 要清除该间隔,请执行以下操作:

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);
var timer=window.setInterval(函数(){
if(parseInt(document.getElementById('count').innerHTML)<2){
警报(“警报”);
窗口清除间隔(计时器);
}
},1000); // 1s间隔
//或者使用非匿名函数
函数检查(){
if(parseInt(document.getElementById('count').innerHTML)<2){
警报(“警报”);
窗口清除间隔(计时器);
}
}
var定时器=窗口设置间隔(检查,1000);

如果您正在更改#自己计数的值,请从该位置调用警报。如果不使用:

window.setInterval(function(){
    if(parseInt(document.getElementById('count').innerHTML) < 2) alert('Alarm!');
},1000); // 1s interval
window.setInterval(函数(){
if(parseInt(document.getElementById('count').innerHTML)<2)警报('Alarm!');
},1000); // 1s间隔
更新 要清除该间隔,请执行以下操作:

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);
var timer=window.setInterval(函数(){
if(parseInt(document.getElementById('count').innerHTML)<2){
警报(“警报”);
窗口清除间隔(计时器);
}
},1000); // 1s间隔
//或者使用非匿名函数
函数检查(){
if(parseInt(document.getElementById('count').innerHTML)<2){
警报(“警报”);
窗口清除间隔(计时器);
}
}
var定时器=窗口设置间隔(检查,1000);

假设您有一个基于setInterval或setTimeout运行的函数。当函数为零时,让它调用你的函数

如果你不能做到这一点,你可以尝试优化轮询-使用setInterval读取值,估计它何时可能接近零,再次检查并估计它何时可能为零,等等。当它为零时,做你自己的事情


虽然存在DOM突变事件,但它们已被弃用,而且从未得到很好或广泛的支持。此外,当内容更改对您的场景来说可能太频繁时,也会调用它们。

您可能有一个基于setInterval或setTimeout的函数在运行。当函数为零时,让它调用你的函数

如果你不能做到这一点,你可以尝试优化轮询-使用setInterval读取值,估计它何时可能接近零,再次检查并估计它何时可能为零,等等。当它为零时,做你自己的事情


虽然存在DOM突变事件,但它们已被弃用,而且从未得到很好或广泛的支持。也,不管怎样,在您的场景中,内容更改太频繁时,都会调用它们。

唯一有效的监视方法是转到实际更改div的代码,并对其进行修改,或者在更新div内容时将其挂起以调用您的函数。对于任何时候都没有通用的通知机制div的内容发生了变化。在修改变更源方面,您将获得更大的成功


除了更改的来源之外,我知道的唯一选项是使用间隔计时器“轮询”div的内容,以便在它发生更改时注意到它。但是,这是非常低效的,并且在注意到实际变化时总是会有一些固有的延迟。它也不利于电池寿命(笔记本电脑或智能手机)当它持续运行时。

唯一有效的监控方法是转到实际更改div的代码,并对其进行修改或钩住它,以便在更新div内容时调用您的函数。对于div内容的任何更改,都没有通用的通知机制。在修改变更源方面,您将获得更大的成功


除了更改的来源之外,我知道的唯一选项是使用间隔计时器“轮询”div的内容,以便在它发生更改时注意到它。但是,这是非常低效的,并且在注意到实际变化时总是会有一些固有的延迟。它还不利于电池寿命(笔记本电脑或智能手机),因为它会连续运行。

你不会听到
div
的变化。
div
只是用来直观地表示程序的状态

相反,在任何计时事件中,使用一个条件,例如

if (i < 2) {
   // ...
}
if(i<2){
// ...
}

您不会监听
div的更改。
div
只是用来直观地表示程序的状态

相反,在任何计时事件中,使用一个条件,例如

if (i < 2) {
   // ...
}
if(i<2){
// ...
}

您通过什么方式更改
#count
的值?与其在
DIV
中侦听更改,不如在倒计时脚本中侦听停止倒计时。您通过什么方式更改
#count
的值?而不是在
DIV
中侦听更改,最好在倒计时脚本中侦听停止倒计时。最好也取消超时,否则代码将每秒弹出警报(或者可能是您的意图…)。最好也取消超时,否则代码将每秒弹出警报(或者可能是您的意图…)我试过了,但很快就会冻结页面。我试过了,但很快就会冻结页面。