2017-05-29 12 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> 

ページを実行してボタンをクリックしても何も起こりません。別のノートに、このコードは、私がするvar CorrectActivitiesを定義していない場合でも、どんな実行しません:条件が実行されると、単純なJavascriptが実行されないのはなぜですか?

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私は私の人生のために、なぜ...

編集を把握することはできません:答えに感謝します。最初のコードは固定されていますが、2番目のコードは私が試したものにかかわらずまだ壊れていますスクリプト内の別の場所でエラーを探す...

+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つのボタンを追加し、動作するようです。

ます。また、ケース3の小さなタイプミスを持っている、あなたは<span>style

0

a = 0に余分な閉じ括弧が割り当てていない有効な条件である持っています。 a == 0a === 0または!aは、すべてあなたが望むもので動作します。

CorrectActivitiesと同じですが、CorrectActivities = 3の代わりにCorrectActivities == 3を使用してください。

ので =文句を言わない実行値を代入し、それを返す、 ==または ===は値

最初の部分を比較JavaScriptで

0

:あなたは

  • Display
  • if(a = 0)呼び出されるボタンをクリックし

    • if(0)に評価すると、javascriptになりますif(false)

    したがって、ifのコードは実行されません。何をしたいことはif(a == 0)です:第二部if(CorrectActivities = 3)ため

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

    ので、それが常に実行されるJavaScriptのif(true)にあるif(3)になります。再び何が欲しいのは==演算子使用している:

    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"); 
        } 
    } 
    

    これは役に立ちます。

    関連する問題