设置简单倒计时器的问题

时间:2012-07-02 17:15:53

标签: javascript jquery dom

有人可以告诉我我做错了什么吗?我是jquery的新手,我想得到一些反馈。基本上我想要的是某种倒数计时器,它会显示事件发生前剩余的天数。该活动是一个确定的日期。

谢谢你的帮助

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">

 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Almost Vacation</title>

 <script type="text/javascript"    src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

 <script>
   $('document').on('ready', calc);
    function calc(){
        var myDate = new Date();
        myDate.setMonth(05, 06);
        var today = new Date();
        today.getDay();
        var x = myDate - today;
        $('#aantal p').text(x);
}



 </script>       

 <style type="text/css">
   p {
      color:red; 
      font-size:1.8em; 
      margin:-90px 10px 5px;
   }

 </style>

 </head>

 <body>

        <img src="http://fed.cmd.hro.nl/upload/files/1011/y1/q4/w3/slapende_student.jpg" width="462" height="275" />

    <p>Vacation starts in<span id="aantal">&nbsp;</span> Days</p>
 </body>


 </html>

3 个答案:

答案 0 :(得分:1)

$('document').on('ready', calc);

应该是:

$(document).ready(calc);

或者简单地说:

$(calc);

$('document')正在寻找<document>类型的元素 而$(document)使用jQuery对象包装document节点。

答案 1 :(得分:1)

需要:

$(function() {
    var myDate = new Date();
    myDate.setMonth(06, 06); //set date forward in time, not backward
    var today = new Date();
    var x = (myDate - today)/86400000;
    $('#aantal').text(x); //append to the span, not the p that does not exists
});

Fiddle

答案 2 :(得分:0)

除了gdoron指出的语法修正外,你得到的范围也不正确。首先,您要从myDate中减去today而不是相反。此外,此减法的结果是日期之间的毫秒数,因此您需要进行一些单位转换以达到数天。最后,你的jQuery选择器是不正确的。

<script>
    $(document).ready(calc);
    function calc(){
        var myDate = new Date();
        myDate.setMonth(5, 6);
        var today = new Date();
        var x = (today - myDate)/(1000*60*60*24);
        $('#aantal').text(x); // update this selector too!!
    }
</script>  

如果您决定要对此数字进行舍入,则可以执行以下操作:

var x = Math.ceil((today - myDate)/(1000*60*60*24));