0

誰かが私が間違っていることを教えてもらえますか?私は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>
4

3 に答える 3

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

する必要があります:

$(document).ready(calc);

または単に:

$(calc);

$('document')ノードをjQueryオブジェクトでラップしている<document>
間、タイプの要素を探しています。$(document)document

于 2012-07-02T17:17:19.553 に答える
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
});

フィドル

于 2012-07-02T17:28:59.413 に答える
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));
于 2012-07-02T17:22:20.447 に答える