2017-08-23 17 views
1

好吧,所以我在一起測試,這將是我試圖實現的東西的核心,仍然學習JavaScript,所以任何幫助將不勝感激。在javascript中使用一個外部計數變量來顯示基於計數的不同結果

所以我已經設置了一個簡單的測試,有三個按鈕,第一個按鈕顯示數值在哪裏與數值,第二個按鈕增加計數,最後一個按鈕是我正在嘗試使用根據計數所在的位置得到不同的結果。

問題在於第三個按鈕只能看到1的計數,而不管第二個按鈕是否增加,並且計數也通過按下來重置。

var count = 1; 
 
function getCount() {document.getElementById("demo").innerHTML = count;} 
 
function incCount() { count++ } 
 
function shoCount() 
 
{ 
 
if (count = 1) 
 
\t {document.getElementById("test").innerHTML = "A";} 
 
else if (count = 2) 
 
\t {document.getElementById("test").innerHTML = "B";} 
 
else if (count > 2) 
 
\t {alert('invalid');} 
 
}
<button onclick="getCount()">getCount</button> 
 
<button onclick="incCount()">incCount</button> 
 
<button onclick="shoCount()">shoCount</button> 
 

 
<p id="demo"></p> 
 
<p id="test"></p> 
 

 
</body>

回答

3

問題是你使用一個number比較count方式:

if (count = 1)回報true
這是一個assignment operatorif (1)在JavaScript的評估,以true

使您在這個語句總是進入:

{document.getElementById("test").innerHTML = "A";} 

你需要的是平等比較==

if (count == 1) 
    {document.getElementById("test").innerHTML = "A";} 
else if (count == 2) 
    {document.getElementById("test").innerHTML = "B";} 
else if (count > 2) 
    {alert('invalid');} 
} 
+0

做你的第一個'else'聲明同樣的事情('別人如果(count = 2)')。 – freginold

+0

謝謝!我記得在導遊中閱讀過這篇文章,很有趣,我忘記了那個快速的大聲笑。 – Chobitscrazy

+1

@freginold你是對的。我編輯過。 – davidxxx

1

使用==或===

如果(計數= 1)// 1將在你的if語句

1

使用平等比較(==或===)您腳本使用==或====

if (count === 1) 
    {document.getElementById("test").innerHTML = "A";} 
else if (count === 2) 
    {document.getElementById("test").innerHTML = "B";} 
else if (count > 2) 
    {alert('invalid');} 
} 
1

改變分配的,而不是賦值運算符(=)來算

if (count == 1) 
    {document.getElementById("test").innerHTML = "A";} 
else if (count == 2) 
    {document.getElementById("test").innerHTML = "B";} 
else if (count > 2) 
    {alert('invalid');} 
} 
0

在javascript中您可以選擇使用=====進行比較。首先被稱爲抽象等式它將解析數據類型併爲您比較值。第二種方法稱爲嚴格等於它將首先檢查左側的類型(例如:字符串,數字,布爾等)是否與右側比較的值相同。

例如:

console.log(4 == "4"); // true (abstract equality) 
console.log(4 === "4"); // false (strict equality) 

在你的情況,你可以按照如下是安全的修改shoCount功能,

function shoCount() { 
    if (count == 1) { 
     document.getElementById("test").innerHTML = "A"; 
    } else if (count == 2) { 
     document.getElementById("test").innerHTML = "B"; 
    } else if (count > 2) { 
     alert('invalid'); 
    } 
}