javascriptのif分岐に関する質問です。

曜日や時間といった条件によってその都度違う画像を表示させたいのですが、希望する処理内容としては、
(1)はじめに曜日(例えば日曜日)のチェックをし、日曜日の場合はA.jpgを表示させます。
(2)日曜日以外の日の場合、次に時刻のチェックをします。10:00〜13:00の場合は決めうちのB.jpgを表示させます。
(3)それ以外の時間は01.jpg〜40.jpgといった画像の中からランダムに表示させたいのです。なお、01〜40のjpg画像はそれぞれクリックしたときに特定のhtmlを開かせたいと考えています。
勉強を始めたばかりのため、曜日と時刻を取得してうまいこと分岐の処理をさせることができません。詳しい方、参考ページでも結構ですのでぜひヒントをいただけたらと思います。よろしくお願いします。

回答の条件
  • 1人3回まで
  • 登録:2006/10/20 00:23:13
  • 終了:2006/10/23 11:20:48

ベストアンサー

id:backupper No.1

backupper回答回数95ベストアンサー獲得回数102006/10/20 00:54:21

ポイント100pt

以下でどうでしょう?

<html>
<head>
<title>@</title>
</head>
<body>
<script type="text/javascript">
  dt = new Date();
  wday = dt.getDay();//曜日取得
  document.open();
  if (wday == 0) {//日曜
   document.writeln('<img src="A.jpg">');
  } else {
    hour = dt.getHours();//時
    if (hour > 9 && hour < 13) {
     document.writeln('<img src="B.jpg">');
    } else {
      num = Math.floor(Math.random() * 40) + 1;
      if (num < 10) {
        file = '0' + num.toString();
      } else {
        file = num
      }
     document.writeln('<img src="' + num + '.jpg">');
    }
  }
  document.close();
</script>
</body>
</html>

10:00〜13:00というのを、10:00〜12:59:59の事と判断しています。必要であれば、dtのgetMinutesメソッドとgetSecondsメソッドを使って条件分岐してください。

その他の回答(1件)

id:backupper No.1

backupper回答回数95ベストアンサー獲得回数102006/10/20 00:54:21ここでベストアンサー

ポイント100pt

以下でどうでしょう?

<html>
<head>
<title>@</title>
</head>
<body>
<script type="text/javascript">
  dt = new Date();
  wday = dt.getDay();//曜日取得
  document.open();
  if (wday == 0) {//日曜
   document.writeln('<img src="A.jpg">');
  } else {
    hour = dt.getHours();//時
    if (hour > 9 && hour < 13) {
     document.writeln('<img src="B.jpg">');
    } else {
      num = Math.floor(Math.random() * 40) + 1;
      if (num < 10) {
        file = '0' + num.toString();
      } else {
        file = num
      }
     document.writeln('<img src="' + num + '.jpg">');
    }
  }
  document.close();
</script>
</body>
</html>

10:00〜13:00というのを、10:00〜12:59:59の事と判断しています。必要であれば、dtのgetMinutesメソッドとgetSecondsメソッドを使って条件分岐してください。

id:backupper No.2

backupper回答回数95ベストアンサー獲得回数102006/10/20 01:59:31

すみません。書き間違えに気づきました。

document.writeln('<img src="' + num + '.jpg">');

document.writeln('<img src="' + file + '.jpg">');

が正しいです。

id:ga-ya

返答が遅くなってしまい申し訳ありません。

コメント欄に書き込んでいただいた該当箇所はこれからテストして組み込んでみたいと思います。

丁寧なご回答ありがとうございました!

2006/10/23 11:19:47
  • id:backupper
    コメントに書くつもりで、誤って回答欄に記入して投稿してしまいました。
    無駄にポイントを消費してしまうので、2006-10-20 01:59:31の回答は開かないでください。
    以下は、最初の回答の修正版です。
    10:00〜13:00:59までで判定しています。
    10:00-12:59:59が望みの場合、時間の条件判定部分を初めの投稿版と同じにしてください。
    <html>
    <head>
    <title>@</title>
    </head>
    <body>
    <script type="text/javascript">
    uri = new Array(40);
    uri[0] = "http://www.example.com/01.html"
    uri[1] = "http://www.example.com/02.html"
    uri[2] = "http://www.example.com/03.html"
    //省略(実際には0-39までの40個のアドレスを列挙してください)
    uri[37] = "http://www.example.com/38.html"
    uri[38] = "http://www.example.com/39.html"
    uri[39] = "http://www.example.com/40.html"
    dt = new Date();
    wday = dt.getDay();//曜日取得
    document.open();
    if (wday == 0) {//日曜
    document.writeln('<img src="A.jpg">');
    } else {
    hour = dt.getHours();//時
    if ((hour > 9 && hour < 13) || (hour == 13 && dt.getMinutes() == 0)) {
    document.writeln('<img src="B.jpg">');
    } else {
    uridx = Math.floor(Math.random() * 40);
    num = uridx + 1;
    if (num < 10) {
    file = '0' + num.toString();
    } else {
    file = num
    }
    document.writeln('<a href="' + uri[uridx] + '"><img src="' + file + '.jpg"></a>');
    }
    }
    document.close();
    </script>
    </body>
    </html>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません