Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida. Calculadora

Estou tentando fazer uma calculadora, porém, não estou conseguindo adicionar os digitos na tela do resultado. Toda vez que eu clico em um número joga o erro no console "numeros.push is not a function"

JS


var numeros = document.querySelectorAll(".number");
var telaResultado = document.querySelector(".result");



for(var i = 0; i < numeros.length; i++){
    numeros[i].addEventListener("click", function(){


        numeros.push(telaResultado);

    });
}



console.log(numeros);

HTML

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/calculadora.css">
    <title>Calculadora</title>
</head>

<body>

<div class="calc">

<button clas="number" >7</button>
<button class="number" >8</button>
<button class="number">9</button>
<button onclick="" id="operator">/</button>
<button class="number">4</button>
<button class="number">5</button>
<button class="number">6</button>
<button onclick="" id="operator">*</button>
<button class="number" >1</button>
<button class="number" >2</button>
<button class="number" >3</button>
<button onclick="" id="operator">-</button>
<button onclick="" id="operator">+</button>
<button class="number" >0</button>
<button onclick="" id="reset">C</button>
<button onclick="" id="igual">=</button>

<div class="result">0</div>

</div>







<script src="js/calculadora.js"></script>
</body>

</html>
2 respostas
solução!

Opa Vitor!

Fiz uma pequena alteração no seu JS pra ele imprimir o clique do botão na tela, dá uma olhada:

  for(var i = 0; i < numeros.length; i++){
      numeros[i].addEventListener("click", function(event){
                    //adicionei o parametro "event" na função

          telaResultado.textContent = event.target.textContent;
            //aqui uso o "target"(onde cliquei de fato), e atribuo seu valor a variavel da tela
      });
  }

Quando você usou o código "numeros.push(telaResultado)", você tava mandando a tela pra dentro do seu array de numeros, no código que te mandei substituo o texto da tela (acessado através do .textContent) pelo texto do botão, mas essa é apenas uma forma de se imprimir algo no html... espero ter ajudado!

Obrigado. Deu certo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software