2017-01-28 7 views
-2

が含まれている場合私のhtmlコードが実行されていない、と私はこのコードを実行しようとしているが、そうするために失敗してしまいました。どこが間違っているのか分からなかった。あなたの努力はすべて評価されています。私はHTML、CSSおよびJavaScriptを練習していますJavaScriptコード

<!doctype html> 
 
<html> 
 

 
<head> 
 
    <title>Example of a function</title> 
 
    <script> 
 
    var colors = { 
 
     "blue", "green", "red" 
 
    }; 
 
    var guessColor; 
 
    var guesses = 0; 
 
    var finished = false; 
 
    var target_index; 
 
    var targetColor; 
 

 
    function do_game() { 
 
     var randomNo = Math.random() * 3; 
 
     var randomNo_integer = Math.floor(randomNo); 
 
     target_index = randomNo_integer; 
 

 
     targetColor = colors[target_index]; 
 

 
     while (!finished) { 
 
     guessColor = prompt("I am thinking of one of these colors:\n\n" + 
 
      "Blue, Green, Red\n\n" + 
 
      "What color am I thinking of?"); 
 

 
     if (guessColor.toUpperCase() == targetColor.toUpperCase()) 
 
      finished = true; 
 
     } 
 
     document.body.style.backgroundColor = guessColor.toLowerCase(); 
 
    } 
 
    </script> 
 
</head> 
 

 
<body onload="do_game()"> 
 
</body> 
 

 
</html>

+0

すべきですか?私は身体の任意のhtmlコードを見ることができませんか? – Shubhranshu

+3

var colors = ["blue"、 "green"、 "red"]; – smozgur

+4

Typo。 'VAR色= [「青」、「緑」、「赤」];' –

答えて

-3

はい、あなたのコードのすべてが正しいです。しかし、あなたが訂正する必要があるもの。変数colorsvar colors = {"blue", "green", "red"};を受け取りましたが、JavaScriptオブジェクトとして受け取りました。あなたは、あなたの期待どおりの結果を得るでしょう一度var colors = ["blue", "green", "red"];

は試してみてくださいする必要がありますArray

正しいコードとしてそれを宣言する必要があります! :)

+0

あなたはすでにコメントを見ました。オタクの質問に答えないでください – mplungjan

+0

はい、ありがとうございます。 –

0

あなたがcolorsに割り当てるものを変更する必要があります。現在、オブジェクトは配列ではなく、配列として割り当てられます。

その後、あなたはbody要素を形成し、イベントリスナーを追加し、我々はFUNCと呼ばれる関数にすべてのコードを包んだのはなぜ窓ロードイベントに

を聞くことになる?onload="do_game()"を削除することができ

我々はglobal namespaceを汚染しないようにするためには、そのようにしました。

function func(){ 
 
    var colors = ["blue", "green", "red"]; 
 
    var guessColor; 
 
    var guesses = 0; 
 
    var finished = false; 
 
    var target_index; 
 
    var targetColor; 
 
    function do_game(){ 
 
    var randomNo = Math.random() * 3; 
 
    var randomNo_integer = Math.floor(randomNo); 
 
    target_index = randomNo_integer; 
 

 
    targetColor = colors[target_index]; 
 

 
    while(!finished){ 
 
     guessColor = prompt("I am thinking of one of these colors:\n\n" + 
 
          "Blue, Green, Red\n\n" + 
 
          "What color am I thinking of?"); 
 

 
     if(guessColor.toUpperCase() == targetColor.toUpperCase()) 
 
     finished = true; 
 
    } 
 
    document.body.style.backgroundColor = guessColor.toLowerCase(); 
 
    } 
 

 
    // Here we call our function that will trigger the start of the game. 
 
    // This function would be called when the DOMContentLoaded event is fired. 
 
    do_game(); 
 
} 
 

 
window.addEventListener("load", func);
<h1>Game Title</h1>

+0

それはまだタイプミスです。 'window.onload'はより互換性があり、ネストされた関数を使って複雑になりました – mplungjan

0

お使いのアレイ宣言、それが機能していませんどのようなHTMLコード

var colors = [ 
    "blue", "green", "red" 
]; 

<!doctype html> 
 
<html> 
 

 
<head> 
 
    <title>Example of a function</title> 
 
    <script> 
 
    var colors = [ 
 
     "blue", "green", "red" 
 
    ]; 
 
    var guessColor; 
 
    var guesses = 0; 
 
    var finished = false; 
 
    var target_index; 
 
    var targetColor; 
 

 
    function do_game() { 
 
     var randomNo = Math.random() * 3; 
 
     var randomNo_integer = Math.floor(randomNo); 
 
     target_index = randomNo_integer; 
 

 
     targetColor = colors[target_index]; 
 

 
     while (!finished) { 
 
     guessColor = prompt("I am thinking of one of these colors:\n\n" + 
 
      "Blue, Green, Red\n\n" + 
 
      "What color am I thinking of?"); 
 

 
     if (guessColor.toUpperCase() == targetColor.toUpperCase()) 
 
      finished = true; 
 
     } 
 
     document.body.style.backgroundColor = guessColor.toLowerCase(); 
 
    } 
 
    </script> 
 
</head> 
 

 
<body onload="do_game()"> 
 
</body> 
 

 
</html>

+0

あなたは既にコメントを見ました。オタクの質問には答えないでください – mplungjan

+0

ya sure..thanks –

関連する問題