计数器到达特定时间时发出警报

时间:2014-11-18 11:09:08

标签: javascript jquery html5

我正在使用这个jquery Count up(http://demo.tutorialzine.com/2012/09/count-up-jquery/),我正试图在柜台到达00:01:05:40(一小时--5分40秒)时发出警报我不是专家,到目前为止,我尝试了以下代码:

<script>
$(document).ready(function(){
var mytime = $('#countdown').html();
if (mytime == "00:01:05:40"){
alert ('Done');
}
});
</script>

源代码:http://tutorialzine.com/2012/09/count-up-jquery/

由于

4 个答案:

答案 0 :(得分:3)

您的问题

使用$('#countdown').html()将返回#countdown元素中的所有HTML。如果您自己的版本与您链接的演示类似,则会返回:

<span class="countDays"><span class="position">                 <span class="digit static" style="top: 0px; opacity: 1;">0</span>               </span>             <span class="position">                 <span class="digit static" style="top: 0px; opacity: 1;">0</span>               </span></span><span class="countDiv countDiv0"></span><span class="countHours"><span class="position">                  <span class="digit static" style="top: 0px; opacity: 1;">0</span>               </span>             <span class="position">                 <span class="digit static" style="top: 0px; opacity: 1;">0</span>               </span></span><span class="countDiv countDiv1"></span><span class="countMinutes"><span class="position">                    <span class="digit static" style="top: 0px; opacity: 1;">0</span>               </span>             <span class="position">                 <span class="digit static" style="top: 0px; opacity: 1;">0</span>               </span></span><span class="countDiv countDiv2"></span><span class="countSeconds"><span class="position">                    <span class="digit static" style="top: 0px; opacity: 1;">1</span>               </span>             <span class="position">                 <span class="digit static" style="top: 0px; opacity: 1;">7</span>               </span></span>

拉数字

如果要返回数字,可以改为text()。这最初会给你:

“0 0 0 0 0 2 1 2”

然后我们可以调用replace()删除这些空格并返回一个字符串,如:

$('#countdown').text().replace(/\s+/g, '');
-> "00000212"

我们可以使用它来代替:

var mytime = $('#countdown').text().replace(/\s+/g, '');
if (mytime == "00010540")
    ...

定期检查

您的代码的另一个问题是您只运行一次该检查。由于#countdown元素每秒都会更改,我们可以添加一个定时器,每秒检查一次该值:

setInterval(function() {
    // Your function here
    var mytime = $('#countdown').text().replace(/\s+/g, '');
    if (mytime == "00010540")
        ...
}, 1000);

这里,1000是1000毫秒,等于1秒。

答案 1 :(得分:1)

$('#countdown').html()将返回所有html元素。 尝试使用.text(),这只会返回文字。

答案 2 :(得分:1)

<script>
    $(document).ready(function()
    {
       setInterval(function() 
       {
          var mytime = $('#countdown').text();
          if (mytime == "00:01:05:40")
          {
              alert ('Done');
          }
       }, 1000);
    });
    </script>

答案 3 :(得分:0)

尝试使用:

$(function(){
   setInterval(function(){
      var mytime = $('#countdown').text().replace(/\s+/g, '');
      if (mytime == "00010540"){
        alert ('Done');
      }
   },1000);
}

这将每半秒运行一次你的功能,看看它是否符合你想要的时间。