2017-11-13 16 views
1

宝くじゲームを作成する必要があります。Comprobating機能が正常に機能しない

generar()と呼ばれるオンクリックのボタンがあり、この関数は3つの数字を描画する必要があります1から999までの3つの数字と一緒に作成し、別のボタンを押した後に別の番号を描き、新しい番号の番号をすでに作成されたものと照合して勝利したかどうかをチェックします。

私はコード全体を処理しましたが、最初の3つの数字と4番目の数字の比較は正しく機能しません。いつも、私が勝ってもいなくても、「Perdedor! (ゆるい!)。

これは私のコードです:

<html> 
    <head> 
     <title>Práctica 3</title> 
     <style> 
      #contenedor { border: 1px black solid; 
        width: 250px; 
        height: 250px; 
        float: left; 
        margin-right: 5px; 
        text-align: center; 
        margin-bottom: 5px; } 
     </style> 
    </head> 

    <body> 
     <div id="contenedor"> <p id="primerNumero"/> </div> 
     <div id="contenedor"> <p id="segundoNumero"/> </div> 
     <div id="contenedor"> <p id="tercerNumero"/> </div> 
     <button id="generar" onclick="generar()">Genera dècims</button> 
     <div id="contenedor"> <p id="resultado"/> </div> 
     <p id="t"/> 

    <script> 
     function generar() { 
      var primerNumero = Math.floor(Math.random() * 10); 
      var segundoNumero = Math.floor(Math.random() * 10); 
      var tercerNumero = Math.floor(Math.random() * 10); 
      var botones = document.getElementsByTagName("BUTTON").length; 

      if (botones < 2) { 
       generarBotones(); 
      } 

      document.getElementById("primerNumero").innerHTML = primerNumero; 
      document.getElementById("primerNumero").style.fontSize = "72px"; 
      document.getElementById("segundoNumero").innerHTML = segundoNumero; 
      document.getElementById("segundoNumero").style.fontSize = "72px"; 
      document.getElementById("tercerNumero").innerHTML = tercerNumero; 
      document.getElementById("tercerNumero").style.fontSize = "72px"; 
     } 

     function generarBotones() { 
       var boton = document.createElement("BUTTON"); 
       var t = document.createTextNode("Realizar sorteig"); 
       boton.onclick = function(){ 
        var numeroGanador = Math.floor(Math.random() * 10); 
        document.getElementById("resultado").innerHTML = numeroGanador; 
        document.getElementById("resultado").style.fontSize = "72px"; 
        if(primerNumero == numeroGanador || segundoNumero == numeroGanador || tercerNumero == numeroGanador) { 
         document.getElementById("t").innerHTML = "¡Ganador!"; 
        } else { 
         document.getElementById("t").innerHTML = "¡Perdedor!"; 
        } 
       }; 
       boton.appendChild(t); 
       document.body.appendChild(boton); 
     } 
    </script> 

    </body> 
</html> 

誰かがなぜ、どこで、私は失敗を私に伝え、可能な解決策ができれば、それは素晴らしいことだろう。私は説明が値を取得するには、

+0

私は絶対に悪いです。問題は、私がgenerarBotones()に変数をパラメータとして与えていないため、 "primerNumero"、 "segundoNumero"および "tercerNumero"を比較に使用していないことでした。解決策は次のとおりです。 if(botones <2){generarBotones(primNumero、segundoNumero、tercerNumero){generarBotones(); }および関数generarBotones(primNumero、segundoNumero、tercerNumero){...}。 大変申し訳ございません! –

+0

3つの変数と要素を単語で指定するのではなく、num1とnum2のように数字を使ってみてください。つまり、大規模なコードをコピーして貼り付けるのではなく、単純なループを繰り返して反復処理を行うことができます。また、複数の変数を持たないように、これらの要素と1対1の方法で値の配列を関連付けることもできます。 – tadman

答えて

1
primerNumero 
segundoNumero 
tercerNumero 

は、HTML要素ではなく、価値はありますあまりにも非常に感謝与えられているかどうのinnerText OR innerHTMLプロパティを使用することが必要です。

if(primerNumero.innerText == numeroGanador || segundoNumero.innerText == numeroGanador || tercerNumero.innerText == numeroGanador) { 
    document.getElementById("t").innerHTML = "¡Ganador!"; 
} else { 
    document.getElementById("t").innerHTML = "¡Perdedor!"; 
} 

またはあなたの問題が発生した数字を含む変数は、HTML要素のIDと同じ名前であるということですので、あなたは、要素の別の名前に変数の名前を変更することができます。名前の変更が最初のコードに従って行われる場合。

+0

あなたの回答が私のスレッドに対する有効な回答であるかどうかはわかりませんが、とにかく解決しました。 primerNumero、segundoNumero、tercerNumeroは、generar()関数で作成されるためHTML要素ではありません。実際は整数変数です。少なくとも、それは私がやろうとしたことです。とにかくありがとう! –

+0

問題は、生成された数値を含む変数がhtml要素のidと同じ名前であることです。 –

+0

私はあなたの意見を見ます。ありがとうございました! –

関連する問題