2017-08-12 17 views
-1

因此,我一直試圖使一些代碼禁用一個按鈕取決於時間..但後來我想到了每年發生2次的時間變化。 11月初開始回到1小時,然後在5月初開始回到1小時。我做到了,但遇到了錯誤「未捕獲的SyntaxError:意外的標識符」。它出現在「if n =」語句 謝謝!我希望你明白!未捕獲的SyntaxError:意外的標識符 - 我不知道這應該如何發生。如果聲明

<input class="submit" type="submit" id="checktime" value="Check"/> 

<script type="text/javascript" defer="defer"> 
<!-- 
function GetMonth() { 
    var d = new Date(); 
    var n = d.getMonth(); 
    console.log(n); 
} 
var enableDisable = function(){ 
    var d = new Date(); 
    var n = d.getMonth(); 
    console.log(n); 

if n = 0|1|2|3|10|11 { 
    one_zero = +0 
{ 
else { 
    one_zero = +1 
{ 

var one_zero = +1; 


var UTC_hours = new Date().getUTCHours() + one_zero; 
console.log("Current time : " + UTC_hours) 
if (UTC_hours > 19 && UTC_hours < 22){ 
    document.getElementById('checktime').disabled = false; 
} 
else 
{ 
    document.getElementById('checktime').disabled = true; 

} 
}; 
setInterval(enableDisable, 1000*60); 
enableDisable(); 



// --> 
</script> 
+0

您需要周圍的括號聲明之後if'' - '如果(N = 0 | 1 | 2 | 3 | 10 | 11)' –

+0

不知道爲什麼,這是由於一個錯字關閉。寫一個糟糕的if語句不是一個錯字。 – Andy

回答

2

你的右括號實際上是打開支架和if statements需要括號周圍的狀況:

if (n = 0|1|2|3|10|11) { 
    one_zero = +0; 
} else { 
    one_zero = +1; 
} 

注意,=運算符是賦值運算符。要檢查n是否等於m,請使用n === m

|是位或運算符。 n = 0|1|2|3|10|11相當於n = 11,它將11分配給變量n

要檢查是n是陣列[0, 1, 2, 3, 10, 11]的元件,使用[0, 1, 2, 3, 10, 11].indexOf(n) !== -1

if ([0, 1, 2, 3, 10, 11].indexOf(n) !== -1) { 
    one_zero = +0; 
} else { 
    one_zero = +1; 
} 

還要注意的是+0 === 0+1 === 1

+0

不錯。比我自己的答案稍微豐滿一些。好的解釋。 – Andy

+0

我可以問一下downvotes的用途嗎? – PeterMader

+0

不知道。我也下了決心。 – Andy

0

你的表達式應該:

1)括號有

2)使用更好的方法來檢查號碼。目前你分配號碼到n,(使用=====檢查是否相等)和|是按位or,並不會達到你想要的。我使用了一個數組。它檢查數組中的n索引。如果n不存在,則返回的值是-1

if ([0, 1, 2, 3, 10, 11].indexOf(n) > -1) { 
相關問題