2016-12-02 8 views
0

htmlファイルには、「container」というIDのラッパーともちろんjQueryのgoogle apisが含まれています。Js日付とスイッチ機能

$(document).ready(function(){ 
for (i=1; i<=24; i++) { 
    $("#container").append("<div class='divs' id='divs" +i+  "'>" +i+  "</div>"); 
} 
}); 
var d = new Date(); 
var month = d.getMonth(); 
var day = d.getDate(); 
if(month == 11){ 
$(document).ready(function(){ 
    $('.divs').each(function() { 
      $(this).click(function(){ 

       if($(this.id == day)){ 
        alert("something"); 
       }else{ 
        alert("something else"); 
       } 
      }); 
    }); 
}); 
} 

これは私のコードです。私が実際に数字を含むid(彼らはすべて)が日付と同じかどうかを実際にチェックする方法はありますか?

+0

なぜスイッチ**ステートメント**を使用しますか?アドベントカレンダーを作っていますか? –

+0

ちょうどポインタ、 '$(document).ready()'はドキュメントのロード時に起動するイベントです。あなたは 'if'の中にそれを必要としません。そのフローを開始するために使用されます。関数内にコードをラップして '.ready'の中で呼び出す – Rajesh

+0

haha​​ yeah advent calendarそれは、いくつかのランダムな学校プロジェクト –

答えて

0

if ... elsesで同じことをした後で最悪の場合は、24の異なるケースでswitch文を作成します。

代わりに、各divに開かれるべき日時を示すIDを渡す必要があります(最後にIDが "0"、 "1"、 "2"の24個のdivがあります)。 )。

誰かがdivをクリックしたときに日付を取得し、12月であるかどうかを確認し、そうであればdivのIDが現在の日付と同じかどうかを確認します。

それでもswitch文で行きたい場合は、彼らは次のようになります。

switch (day) { 
    case 0: 
     // Open the first div 
     break; 
    case 1: 
     // Open the second div 
     break; 
    // ... 
} 

私はあなたがこれが最適解

-2

ない理由は、うまくいくかもしれない参照を願って:

$(document).ready(function(){ 
    var d = new Date(); 
    var month = d.getMonth(); 
    var day = d.getDate(); 

    $('[class^="divs"]').click(function() { 
    if(month == 11){ 
     $(this).toggleClass('image'); 
    } else { 
     alert("not allowed"); 
    } 
    }); 
}); 
+0

「12月中に特定の日に**特定の部門を開くことのみ許可するようにしています**」質問を読んでください –