2017-08-23 9 views
1

これは私が達成しようとしているテストの核となるテストです。 。javascriptの外部カウント変数を使用してカウントに基づいて異なる結果を表示する

私は、3つのボタンで簡単なテストを設定しました。最初のボタンは、数値が数値のところに表示され、2番目のボタンはカウントを増加させ、最後のボタンは、カウントがどこにあるかに基づいて異なる結果を得る。

問題は、2番目のボタンで増加しているかどうかにかかわらず、3番目のボタンは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

問題は、あなたがnumbercountを比較するために使用する方法です:

この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'文の同じことを行います('他if(count = 2) ')。 – freginold

+0

ありがとう!私はガイドでそれについて読むことを覚えている、面白いことに、私はそれを忘れてしまった。 – Chobitscrazy

+1

@freginoldあなたは正しいです。私は編集しました。 – davidxxx

1

==または===を使用

場合(カウント= 1)// 1あなたのif文

1

使用平等コンパレータ(==または===)をカウントするために割り当てられますあなたのあなたが比較のために=====のいずれかを使用する必要がJavaScriptで==または====

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

を使用するスクリプト。最初は抽象的な等価と呼ばれ、データ型を解決して値を比較します。第2は厳密な等価として知られています。左辺の型(例:文字列、数値、ブール値など)が右辺で比較される値と同じかどうかを最初にチェックします。例えば

:あなたのケースでは

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'); 
    } 
} 
関連する問題