2016-08-09 19 views
0

を認識しているだけなので、この問題の解決策を探していますが、見つけられないようです。javascriptは私のifステートメント

このコードは、現在の日(例:tueday)をmoment.jsで取得し、それを文字列に変換した後、if else文に渡して動作します。

コードを実行すると、日にちに関係なく常に表示されるのは68日目だけです。下の はコードそのものです。

var dayN = moment().format('dddd'); 
var dayC = JSON.stringify(dayN); 
document.write(dayC); 

function getSched() { 
    if (dayC = "Monday") { 
     document.getElementById('here').innerHTML = 'Day 68'; 
    } else if (dayC = "Tuesday") { 
     document.getElementById('here').innerHTML = 'Day 2'; 
    } else if (dayC = "Wednesday") { 
     document.getElementById('here').innerHTML = 'Day 3'; 
    } else if (dayC = "Thursday") { 
     document.getElementById('here').innerHTML = 'Day 4'; 
    } else if (dayC = "Friday") { 
     document.getElementById('here').innerHTML = 'Day 5'; 
    } else if (dayC = "Saturday") { 
     document.getElementById('here').innerHTML = 'Day 6'; 
    } else if (dayC = "Sunday") { 
     document.getElementById('here').innerHTML = 'Day 7'; 
    } else { 
     document.getElementById('here').innerHTML = 'GG WP'; 
    } 
} 
+6

'='は代入を行い、割り当てられた値を返します。比較のために '==='(または '==')を使います。 – nnnnnn

+1

また、JSON.stringifyは必要ありません。 –

答えて

0

私はいくつかの改善を使用してコードを修正:

「スイッチ」の使用は、コードを明確にすることができます。

function getSched(dayC) { // declaration of the function 
    var val=''; 
    switch(dayC){ 
     case "Monday": 
       val ='Day 68'; 
       break; 
     case "Tuesday": 
       val ='Day 2'; 
       break; 
     case "Wednesday": 
       val ='Day 3'; 
       break; 
     case "Thursday": 
       val ='Day 4'; 
       break; 
     case "Friday": 
       val ='Day 5'; 
       break; 
     case "Saturday": 
       val ='Day 6'; 
       break; 
     case "Sunday": 
       val ='Day 7'; 
       break; 
     default: 
       val ='GG WP'; 
       break; 
    } 

    return val; 
} 


var dayN = moment().format('dddd'); 
var dayC = JSON.stringify(dayN); 
document.getElementById('here').innerHTML = getSched(dayC); 

は、使用することをお勧めしませんdocument.getElementById()の代わりdocument.writeを試してみてください。

4

あなたはそうあなたがtruthy割り当てをやっている、二重の等号(==)を使用する必要があります。

+0

それは答えに感謝しました:D – VadR

関連する問題