2017-03-27 9 views
1

日付に基づいてdivを表示するように私のサイトにクエリを追加しました。私は自分のサイトに30 divを追加して、ディスプレイにnoneを追加しました。日付ベースのクエリを使用して、1つのdivを毎日アクティブにします。以前は、2日間追加したときに動作していました。しかし、私はそれを30日単位で追加しているとき、それは私のために働いていません。私のURLはhereです。日付ベースのスクリプトが動作しません

hereコードが実行されていることを確認できます。

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script> 
window.setInterval(function(){ 
    var current = new Date(); 
    var expiry = new Date("March 26, 2017 12:00:00") 
    var expiry2 = new Date("March 27, 2017 12:00:00") 
var expiry3 = new Date("March 28, 2017 12:00:00") 
var expiry4 = new Date("March 29, 2017 12:00:00") 
var expiry5 = new Date("March 30, 2017 12:00:00") 
var expiry6 = new Date("April 01, 2017 12:00:00") 
var expiry7 = new Date("April 02, 2017 12:00:00") 
var expiry8 = new Date("April 03, 2017 12:00:00") 
var expiry9 = new Date("April 04, 2017 12:00:00") 
var expiry10 = new Date("April 05, 2017 12:00:00") 
var expiry11 = new Date("April 06, 2017 12:00:00") 
var expiry12 = new Date("April 07, 2017 12:00:00") 
var expiry13 = new Date("April 08, 2017 12:00:00") 
var expiry14 = new Date("April 09, 2017 12:00:00") 
var expiry15 = new Date("April 10, 2017 12:00:00") 
var expiry16 = new Date("April 11, 2017 12:00:00") 
var expiry17 = new Date("April 12, 2017 12:00:00") 
var expiry18 = new Date("April 13, 2017 12:00:00") 
var expiry19 = new Date("April 14, 2017 12:00:00") 
var expiry20 = new Date("April 15, 2017 12:00:00") 
var expiry21 = new Date("April 16, 2017 12:00:00") 
var expiry22 = new Date("April 17, 2017 12:00:00") 
var expiry23 = new Date("April 18, 2017 12:00:00") 
var expiry24 = new Date("April 19, 2017 12:00:00") 
var expiry25 = new Date("April 20, 2017 12:00:00") 
var expiry26 = new Date("April 21, 2017 12:00:00") 
var expiry27 = new Date("April 22, 2017 12:00:00") 
var expiry28 = new Date("April 23, 2017 12:00:00") 
var expiry29 = new Date("April 24, 2017 12:00:00") 
var expiry30 = new Date("April 25, 2017 12:00:00") 
    if(current.getTime()>expiry.getTime()){ 
    $('.panchang_one').hide(); 
    $('.panchang_two').show(); 
    } 
    else if(current.getTime()>expiry2.getTime()){ 
     $('.panchang_two').hide(); 
     $('.panchang_three').show(); 
    } 
    else if(current.getTime()>expiry3.getTime()){ 
     $('.panchang_three').hide(); 
     $('.panchang_four').show(); 
    } 
    else if(current.getTime()>expiry4.getTime()){ 
     $('.panchang_four').hide(); 
     $('.panchang_five').show(); 
    } 
    else if(current.getTime()>expiry5.getTime()){ 
     $('.panchang_five').hide(); 
     $('.panchang_six').show(); 
    } 
    else if(current.getTime()>expiry6.getTime()){ 
     $('.panchang_six').hide(); 
     $('.panchang_seven').show(); 
    } 
    else if(current.getTime()>expiry7.getTime()){ 
     $('.panchang_seven').hide(); 
     $('.panchang_eight').show(); 
    } 
    else if(current.getTime()>expiry8.getTime()){ 
     $('.panchang_eight').hide(); 
     $('.panchang_nine').show(); 
    } 
    else if(current.getTime()>expiry9.getTime()){ 
     $('.panchang_nine').hide(); 
     $('.panchang_ten').show(); 
    } 
    else if(current.getTime()>expiry10.getTime()){ 
     $('.panchang_ten').hide(); 
     $('.panchang_eleven').show(); 
    } 
    else if(current.getTime()>expiry11.getTime()){ 
     $('.panchang_eleven').hide(); 
     $('.panchang_twelve').show(); 
    } 
    else if(current.getTime()>expiry12.getTime()){ 
     $('.panchang_twelve').hide(); 
     $('.panchang_thirteen').show(); 
    } 
    else if(current.getTime()>expiry13.getTime()){ 
     $('.panchang_thirteen').hide(); 
     $('.panchang_fourteen').show(); 
    } 
    else if(current.getTime()>expiry14.getTime()){ 
     $('.panchang_fourteen).hide(); 
     $('.panchang_fifteen').show(); 
    } 
    else if(current.getTime()>expiry15.getTime()){ 
     $('.panchang_fifteen').hide(); 
     $('.panchang_sixteen').show(); 
    } 
    else if(current.getTime()>expiry16.getTime()){ 
     $('.panchang_sixteen').hide(); 
     $('.panchang_seventeen').show(); 
    } 
    else if(current.getTime()>expiry17.getTime()){ 
     $('.panchang_seventeen').hide(); 
     $('.panchang_eighteen').show(); 
    } 
    else if(current.getTime()>expiry18.getTime()){ 
     $('.panchang_eighteen').hide(); 
     $('.panchang_nineteen').show(); 
    } 
    else if(current.getTime()>expiry19.getTime()){ 
     $('.panchang_nineteen').hide(); 
     $('.panchang_twenty').show(); 
    } 
    else if(current.getTime()>expiry20.getTime()){ 
     $('.panchang_twenty').hide(); 
     $('.panchang_twentyone').show(); 
    } 
    else if(current.getTime()>expiry21.getTime()){ 
     $('.panchang_twentyone').hide(); 
     $('.panchang_twentytwo').show(); 
    } 
    else if(current.getTime()>expiry22.getTime()){ 
     $('.panchang_twentytwo').hide(); 
     $('.panchang_twentythree').show(); 
    } 
    else if(current.getTime()>expiry23.getTime()){ 
     $('.panchang_twentythree').hide(); 
     $('.panchang_twentyfour').show(); 
    } 
    else if(current.getTime()>expiry24.getTime()){ 
     $('.panchang_twentyfour').hide(); 
     $('.panchang_twentyfive').show(); 
    } 
    else if(current.getTime()>expiry25.getTime()){ 
     $('.panchang_twentyfive').hide(); 
     $('.panchang_twentysix').show(); 
    } 
    else if(current.getTime()>expiry26.getTime()){ 
     $('.panchang_twentysix').hide(); 
     $('.panchang_twentyseven').show(); 
    } 
    else if(current.getTime()>expiry27.getTime()){ 
     $('.panchang_twentyseven').hide(); 
     $('.panchang_twentyeight').show(); 
    } 
    else if(current.getTime()>expiry28.getTime()){ 
     $('.panchang_twentyeight').hide(); 
     $('.panchang_twentynine').show(); 
    } 
    else if(current.getTime()>expiry29.getTime()){ 
     $('.panchang_twentynine').hide(); 
     $('.panchang_thirty').show(); 
    } 
}, 3000); 
$('.panchang_one').show(); 
</script> 

私が間違っていることを誰かが指摘できますか?

+0

正確に何を動作しませんか?私はそれが後でケースに適用されるべきときに、最初のケースが常に真であるという論理的な問題であると感じています。一番大きい数字から最も少ない数字にチェックする必要があります。 – epascarello

+0

昨日、スクリプトが書かれたdivが正常に表示されています。しかし、今日は何も表示されていません。私の懸念は、1日に1つのdiv表示ブロックを作ることです。昨日の最初の部門は晴れていた。今日の2番目のdivは、表示することを意図していますが、表示しません。上記のスクリーンショットでdivコンテンツが表示される場所を確認してください。あなたが要素を調べると、私が何を参照しているかが分かります。 ありがとうございました。 –

+1

これは絶対にひどいコードなので、多くの繰り返しは...ループや配列の操作に慣れています。さらに、ユーザーがあなたのサイトにどれだけ長く滞在することを期待していますか? 3秒ごとに間隔を置いてそのチェックを実行することは、この目的のために一番上にあるようです。 – CBroe

答えて

0

JavaScriptのロジックに問題があります。あなたのケースでは、現在の日付は、いつも最初にの文が実行されると、で提供されたステートメントの残りの部分は、実行されませんブロックのいずれかの日付よりも常に大きいです。これは、elseif文が動作する方法です。つまり、ifブロックの条件がtrueと評価され、elseif文を実行しない場合です。 有効期限の変更、つまり有効期限、有効期限2、有効期限3、有効期限4などで現在の日付を確認する必要があります。

必要な補正: 場合で他に場合を交換してください。ここ

は正しいロジックです:

<script> 
    window.setInterval(function(){ 
     var current = new Date(); 
     var expiry = new Date("March 26, 2017 12:00:00") 
     var expiry2 = new Date("March 27, 2017 12:00:00") 
    var expiry3 = new Date("March 28, 2017 12:00:00") 
    var expiry4 = new Date("March 29, 2017 12:00:00") 
    var expiry5 = new Date("March 30, 2017 12:00:00") 
    var expiry6 = new Date("April 01, 2017 12:00:00") 
    var expiry7 = new Date("April 02, 2017 12:00:00") 
    var expiry8 = new Date("April 03, 2017 12:00:00") 
    var expiry9 = new Date("April 04, 2017 12:00:00") 
    var expiry10 = new Date("April 05, 2017 12:00:00") 
    var expiry11 = new Date("April 06, 2017 12:00:00") 
    var expiry12 = new Date("April 07, 2017 12:00:00") 
    var expiry13 = new Date("April 08, 2017 12:00:00") 
    var expiry14 = new Date("April 09, 2017 12:00:00") 
    var expiry15 = new Date("April 10, 2017 12:00:00") 
    var expiry16 = new Date("April 11, 2017 12:00:00") 
    var expiry17 = new Date("April 12, 2017 12:00:00") 
    var expiry18 = new Date("April 13, 2017 12:00:00") 
    var expiry19 = new Date("April 14, 2017 12:00:00") 
    var expiry20 = new Date("April 15, 2017 12:00:00") 
    var expiry21 = new Date("April 16, 2017 12:00:00") 
    var expiry22 = new Date("April 17, 2017 12:00:00") 
    var expiry23 = new Date("April 18, 2017 12:00:00") 
    var expiry24 = new Date("April 19, 2017 12:00:00") 
    var expiry25 = new Date("April 20, 2017 12:00:00") 
    var expiry26 = new Date("April 21, 2017 12:00:00") 
    var expiry27 = new Date("April 22, 2017 12:00:00") 
    var expiry28 = new Date("April 23, 2017 12:00:00") 
    var expiry29 = new Date("April 24, 2017 12:00:00") 
    var expiry30 = new Date("April 25, 2017 12:00:00") 
     if(current.getTime()>expiry.getTime()){ 
     $('.panchang_one').hide(); 
     $('.panchang_two').show(); 
     } 
     if(current.getTime()>expiry2.getTime()){ 
      $('.panchang_two').hide(); 
      $('.panchang_three').show(); 
     } 
     if(current.getTime()>expiry3.getTime()){ 
      $('.panchang_three').hide(); 
      $('.panchang_four').show(); 
     } 
     if(current.getTime()>expiry4.getTime()){ 
      $('.panchang_four').hide(); 
      $('.panchang_five').show(); 
     } 
     if(current.getTime()>expiry5.getTime()){ 
      $('.panchang_five').hide(); 
      $('.panchang_six').show(); 
     } 
     if(current.getTime()>expiry6.getTime()){ 
      $('.panchang_six').hide(); 
      $('.panchang_seven').show(); 
     } 
     if(current.getTime()>expiry7.getTime()){ 
      $('.panchang_seven').hide(); 
      $('.panchang_eight').show(); 
     } 
     if(current.getTime()>expiry8.getTime()){ 
      $('.panchang_eight').hide(); 
      $('.panchang_nine').show(); 
     } 
     if(current.getTime()>expiry9.getTime()){ 
      $('.panchang_nine').hide(); 
      $('.panchang_ten').show(); 
     } 
     if(current.getTime()>expiry10.getTime()){ 
      $('.panchang_ten').hide(); 
      $('.panchang_eleven').show(); 
     } 
     if(current.getTime()>expiry11.getTime()){ 
      $('.panchang_eleven').hide(); 
      $('.panchang_twelve').show(); 
     } 
     if(current.getTime()>expiry12.getTime()){ 
      $('.panchang_twelve').hide(); 
      $('.panchang_thirteen').show(); 
     } 
     if(current.getTime()>expiry13.getTime()){ 
      $('.panchang_thirteen').hide(); 
      $('.panchang_fourteen').show(); 
     } 
     if(current.getTime()>expiry14.getTime()){ 
      $('.panchang_fourteen').hide(); 
      $('.panchang_fifteen').show(); 
     } 
     if(current.getTime()>expiry15.getTime()){ 
      $('.panchang_fifteen').hide(); 
      $('.panchang_sixteen').show(); 
     } 
     if(current.getTime()>expiry16.getTime()){ 
      $('.panchang_sixteen').hide(); 
      $('.panchang_seventeen').show(); 
     } 
     if(current.getTime()>expiry17.getTime()){ 
      $('.panchang_seventeen').hide(); 
      $('.panchang_eighteen').show(); 
     } 
     if(current.getTime()>expiry18.getTime()){ 
      $('.panchang_eighteen').hide(); 
      $('.panchang_nineteen').show(); 
     } 
     if(current.getTime()>expiry19.getTime()){ 
      $('.panchang_nineteen').hide(); 
      $('.panchang_twenty').show(); 
     } 
     if(current.getTime()>expiry20.getTime()){ 
      $('.panchang_twenty').hide(); 
      $('.panchang_twentyone').show(); 
     } 
     if(current.getTime()>expiry21.getTime()){ 
      $('.panchang_twentyone').hide(); 
      $('.panchang_twentytwo').show(); 
     } 
     if(current.getTime()>expiry22.getTime()){ 
      $('.panchang_twentytwo').hide(); 
      $('.panchang_twentythree').show(); 
     } 
     if(current.getTime()>expiry23.getTime()){ 
      $('.panchang_twentythree').hide(); 
      $('.panchang_twentyfour').show(); 
     } 
     if(current.getTime()>expiry24.getTime()){ 
      $('.panchang_twentyfour').hide(); 
      $('.panchang_twentyfive').show(); 
     } 
     if(current.getTime()>expiry25.getTime()){ 
      $('.panchang_twentyfive').hide(); 
      $('.panchang_twentysix').show(); 
     } 
     if(current.getTime()>expiry26.getTime()){ 
      $('.panchang_twentysix').hide(); 
      $('.panchang_twentyseven').show(); 
     } 
     if(current.getTime()>expiry27.getTime()){ 
      $('.panchang_twentyseven').hide(); 
      $('.panchang_twentyeight').show(); 
     } 
     if(current.getTime()>expiry28.getTime()){ 
      $('.panchang_twentyeight').hide(); 
      $('.panchang_twentynine').show(); 
     } 
     if(current.getTime()>expiry29.getTime()){ 
      $('.panchang_twentynine').hide(); 
      $('.panchang_thirty').show(); 
     } 
    }, 3000); 
    $('.panchang_one').show(); 
    </script> 

は、この情報がお役に立てば幸い!

+0

うわー。さらに調整が必要です。私はそれをします。しかし、とにかく、コードは動作していません。再度、感謝します。 :) –

+0

私の答えがあなたの質問を解決するのを助けたら、私の答えを承認/ upvoteすることを忘れないでください:) –

+0

こんにちはReena、私は15の評判のポイントがありません。だから私はあなたの答えをupvoteすることはできません。しかし、一度私は15ポイントを持って、私は確かにこのスレッドに戻り、あなたの答えをupvote。 –

0

あなたの質問では、あなたがすべての日をハードコーディングしていることが奇妙に感じられました。 var current = new Date();を使用する予定がある場合は、今日の/現在の日付を取得します。したがって、文字通り、ハードコードされた値を毎日更新する必要があります。

私はあなたのコードをもっとミニマルなものに変換する自由を取った。 Click Meボタンをクリックすると、今日の現在の日付を基準にして今後30日間連続して日数が経過することがシミュレートされます。

// Create an ease of use function to add days to a given date 
 
Date.prototype.addDays = function(days) { 
 
    var dat = new Date(this.valueOf()); 
 
    dat.setDate(dat.getDate() + days); 
 
    return dat; 
 
} 
 

 
// Start with all divs hidden 
 
$('.panchang').hide(); 
 

 
// This will be called when our button is clicked 
 
function start() { 
 
    var today = new Date(); // get today's date 
 
    var expiryDates = new Array(); 
 
    for (var i = 0; i < 30; ++i) // store the dates of the next 30 days 
 
    expiryDates.push(new Date().addDays(i)); 
 

 
    // Every 100 milli seconds, simulate the passing of 1 day 
 
    var interval = setInterval(() => { 
 
    var keyDateIndex = null; 
 
    // iterate expiry dates and see which dates we have surpassed 
 
    for (let [index, value] of expiryDates.entries()) { 
 
     if (today.getTime() > value.getTime()) 
 
     keyDateIndex = index; 
 
     else 
 
     break; 
 

 
    } 
 

 
    if (keyDateIndex == expiryDates.length - 1) 
 
     clearInterval(interval); 
 
    else 
 
     today = today.addDays(1); 
 

 
    // Show the correct divs 
 
    $('.panchang').hide(); 
 
    $('.panchang:eq(' + keyDateIndex + ')').show(); 
 

 
    }, 100); 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button onclick="start()">Click Me</button> 
 
<div class="panchang">1</div> 
 
<div class="panchang">2</div> 
 
<div class="panchang">3</div> 
 
<div class="panchang">4</div> 
 
<div class="panchang">5</div> 
 
<div class="panchang">6</div> 
 
<div class="panchang">7</div> 
 
<div class="panchang">8</div> 
 
<div class="panchang">9</div> 
 
<div class="panchang">10</div> 
 
<div class="panchang">11</div> 
 
<div class="panchang">12</div> 
 
<div class="panchang">13</div> 
 
<div class="panchang">14</div> 
 
<div class="panchang">15</div> 
 
<div class="panchang">16</div> 
 
<div class="panchang">17</div> 
 
<div class="panchang">18</div> 
 
<div class="panchang">19</div> 
 
<div class="panchang">20</div> 
 
<div class="panchang">21</div> 
 
<div class="panchang">22</div> 
 
<div class="panchang">23</div> 
 
<div class="panchang">24</div> 
 
<div class="panchang">25</div> 
 
<div class="panchang">26</div> 
 
<div class="panchang">27</div> 
 
<div class="panchang">28</div> 
 
<div class="panchang">29</div> 
 
<div class="panchang">30</div>

関連する問題