2016-08-09 15 views
0

所以我一直在尋找這個問題的解決方案几天,但我似乎無法找到它。javascript只是承認我的,如果語句

該代碼的基本工作原理是通過moment.js獲取當前日期(例如:tueday),然後將其轉換爲字符串,然後將其傳遞給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