2017-05-29 24 views
0
<!DOCTYPE html> 
<html> 
<body> 

<button onClick="Display()"></button> 

<script> 
function Display() { 
    var a = 0; 
    if(a = 0){ 
     alert("hello world"); 
    } 
} 

</script> 

</body> 
</html> 

我運行該頁面並單擊該按鈕,什麼也沒有發生。我不能爲我的生命弄清楚爲什麼...如果條件執行,爲什麼不會有一個簡單的Javascript?

編輯:在另一方面,該代碼執行不管是什麼,即使我沒有定義VAR CorrectActivities:

function Display() { 

    if(CorrectActivities = 3) { 
     document.getElementById("ActivitiesResult").innerHTML = '<span>style="color:DarkGreen;font-weight:bold;font-size:30px;">3 out of 3 correct!</span>'; 

    } else if (CorrectActivities = 2) { 
     document.getElementById("ActivitiesResult").innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">2 out of 3 correct!</span>'; 

    } else if (CorrectActivities = 1) { 
     document.getElementById("ActivitiesResult").innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">1 out of 3 correct!</span>'; 

    } else { 
    document.getElementById("ActivitiesResult").innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">0 out of 3 correct!</span>'; 
    } 
} 

EDIT2 :謝謝你的答案。第一個代碼是固定的,第二個代碼仍然被打破,不管我嘗試什麼。要在腳本的其他地方查找錯誤...

+4

因爲你必須比較你的'if'裏面的值,把它改爲'if(a === 0)'或'if(a == 0)' – Lixus

+0

我試了十幾遍......只是剛剛工作。謝謝我猜... HTML的奇怪 – Charles

回答

4

當您比較值時,應使用==(等於)或===(等於和相同類型)。 =僅用於設置變量值。

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<button onClick="Display()"></button> 
 

 
<script> 
 
function Display() { 
 
    var a = 0; 
 
    if(a == 0){ 
 
    alert("hello world"); 
 
    } 
 
} 
 

 
</script> 
 

 
</body> 
 
</html>

要在另一個代碼,我創建了一個jsfiddle。在第一部分中,您有同樣的問題,錯誤的比較運算符。它沒有運行,如果CorrectActivities沒有聲明。我修復它(像在第一部分),聲明變量,並添加三個按鈕來測試所有情況下,它似乎工作。

你也有小錯字的情況下,3,你必須在<span>style

0

a = 0一個額外的右括號是分配不是一個有效的條件。 a == 0,a === 0!a將全部爲你想要的工作。

CorrectActivities的情況相同,使用CorrectActivities == 3而不是CorrectActivities = 3

0

在javascript =分配一個值,並將其返回,=====比較值

第一部分不會因爲執行:

  • 單擊該按鈕
  • Display得到所謂
  • if(a = 0)評價爲if(0)這是javascript if(false)

所以if裏面的代碼將不會運行。你想要的是if(a == 0)

function Display() { 
 
    var a = 0; 
 
    if (a == 0) { 
 
    alert("hello world"); 
 
    } 
 
}
<button onClick="Display()"></button>

第二部分if(CorrectActivities = 3)if(3)這是JavaScript的if(true)因此會一直運行。使用==運營商想要再次的是:

function Display() { 
    if ((CorrectActivities == 3)) { 
    document.getElementById('ActivitiesResult').innerHTML = '<span>style="color:DarkGreen;font-weight:bold;font-size:30px;">3 out of 3 correct!</span>' 
    } else if ((CorrectActivities == 2)) { 
    document.getElementById('ActivitiesResult').innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">2 out of 3 correct!</span>' 
    } else if ((CorrectActivities == 1)) { 
    document.getElementById('ActivitiesResult').innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">1 out of 3 correct!</span>' 
    } else { 
    document.getElementById('ActivitiesResult').innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">0 out of 3 correct!</span>' 
    } 
} 
0

這是因爲,而不是比較,要分配它。

因此,語句if(a = 0)總是成立。

使用==代替=。

function Display() { 
    var a = 0; 
    if(a = 0){ 
     alert("hello world"); 
    } 
} 

這會有所幫助。

相關問題