2016-11-25 8 views
-8

私は誰かが私にこれと一緒に行く正しい方向性を示すことができればと思っています。私はレストランのウェブサイトのjavascriptプロジェクトに取り組んでいます。私がしなければならないことは、さまざまな時間(ダイナミック)で異なるランチ/ディナー/ハッピーアワースペシャルを見せることです。私はスペシャルでアレイを考えています。 getDay()やgetTime()メソッドのようなものを使って特定のスペルを表示する方法がありますが、これにどのようにアプローチするのか100%はわかりません。Javascriptでメニューのスペシャルを動的に変更する

<script> 
var specials = new Array(); 
       specials[0] = "Sunday Morning", "Sunday Lunch", "Sunday Dinner"; 
       specials[1] = "Monday Morning", "Monday Lunch", "Monday Dinner"; 
       specials[2] = "Tuesday Morning", "Tuesday Lunch", "Tuesday Dinner"; 
       specials[3] = "Wednesday Morning", "Wednesday Lunch", "Wednesday Dinner"; 
       specials[4] = "Thursday Morning", "Thursday Lunch", "Thursday Dinner"; 
       specials[5] = "Friday Morning", "Friday Lunch", "friday Dinner"; 
       specials[6] = "Saturday Morning", "Saturday Lunch", "Saturday Dinner"; 

function getSpecial() { 
    var now = (new Date()); 
    var day = specials[now.getDay()]; 
    var hour = now.getHours(); 

    if (hour > 17) 
    return day[2]; // Dinner 
    else if (hour > 11) 
    return day[1]; // Lunch 
    else 
    return day[0]; // Breakfast 
} 
document.getElementById("output").innerHTML = getSpecial(); 
</script> 

    <span id="output"></span> 

このコードでは、スパンIDに特別なメニューが表示されます。メニュースペシャルは、時刻に応じて朝食スペシャル、ランチスペシャル、ディナースペシャルに動的に変更する必要があります。しかし、それは動作していません。私は誰かがこれを手伝うことを望んでいた。このサイトの紳士は私を少し助けましたが、それはまだ動作していません。どんな助けも素晴らしいだろう!ありがとうございました!

+2

私は一種の要件として何のjQueryを参照してください、ないJSONことができますか?それは、50と100の間に数字がないと言うようなものです。 – Paulpro

+3

不明な質問は、何も試していないようです。 –

+0

ここから始めます:http://stackoverflow.com/help/how-to-ask – ppovoski

答えて

0

質問は少し曖昧ですが、あなたが言及したように、getDay()getHours()でこれを行うことができます。

あなたには2種類のスペシャルがあります:1つの曜日に1つの配列があり、その中にはその日の各時間セグメントの項目があります。曜日で直接配列にインデックスを付けることができます。次に、if-elseステートメントを使用して、特定の時刻指定のスペシャルを取得します。

あなたがしたいことは、レストランがあるタイムゾーンから時間を得ることです。以下の例は、どこにいてもユーザーの現地時間を取得するだけです。

var specials = [ 
 
    [ "Sunday morning", "Sunday lunch", "Sunday dinner" ], 
 
    [ "Monday morning", "Monday lunch", "Monday dinner" ], 
 
    [ "Tuesday morning", "Tuesday lunch", "Tuesday dinner" ], 
 
    [ "Wednesday morning", "Wednesday lunch", "Wednesday dinner" ], 
 
    [ "Thursday morning", "Thursday lunch", "Thursday dinner" ], 
 
    [ "Friday morning", "Friday lunch", "Friday dinner" ], 
 
    [ "Saturday morning", "Saturday lunch", "Saturday dinner" ] 
 
]; 
 

 
function getSpecial() { 
 
    var now = (new Date()); 
 
    var day = specials[now.getDay()]; 
 
    var hour = now.getHours(); 
 
    
 
    if (hour > 17) 
 
    return day[2]; // Dinner 
 
    else if (hour > 11) 
 
    return day[1]; // Lunch 
 
    else 
 
    return day[0]; // Breakfast 
 
} 
 

 
document.getElementById("output").textContent = getSpecial();
<div id="output"></div>

+0

これは私が探していたものです!ありがとう、アルフレッド!私の投稿の混乱のために他の人にはすみません。 –

+0

ちょっとアルフレッド!あなたが投稿したコードは、 "Run Code Snippet"の上で完璧に動作しますが、私がそれを使用すると、それは私のために働くようです。私はあなたが投稿した正確なコードを使用し、それは動作しませんでした。私はそれがうまくいくかどうかを確認するために少し配列を編集し、まだダイスはありません。ここに私のコード –

+0

それは私のコードが長すぎるように見えるのですか?私は前にコメントとして書式を設定しています。これを行う方法は覚えていません。 –

関連する問題