复杂的功能不能正常工作

时间:2017-11-13 17:49:16

标签: javascript

我需要创建一个彩票游戏。我知道整个代码应该是怎么做的,而且大部分已完成,但我有一个问题:

我有一个带有onclick的按钮,名为 generar(),此功能需要从1到999绘制3个数字并与三个数字一起创建,另一个按钮在按下之后,绘制另一个数字,然后(新按钮)检查新号码与已创建的号码,以查看我是否赢了。

好的,我已经设法完成了整个代码,但是三个第一个数字与第四个数字的比较不能正常工作。总是,如果我赢了或不赢的话,写下“¡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>

如果有人能告诉我失败的原因和地点以及可能的解决方案,那就太棒了。如果给出解释,我将非常感激

1 个答案:

答案 0 :(得分:3)

primerNumero
segundoNumero
tercerNumero

使用innerText或innerHTML是否需要获取值的html元素,而不是值。

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

或者您可以将变量重命名为元素的其他名称,因为您的问题是包含生成的数字的变量与html元素的id同名。如果重命名将根据您的第一个代码工作。