Hola a todos, estaba trabajando para hacer que esta calculadora funcionara y tenía otras formas de hacerlo, pero quería hacerlo de una manera particular.
<form action=""> <label for="firstVal">numberA</label><br> <input type="number" name="firstVal" id="firstVal"><br> <label for="SecondVal">numberB</label><br> <input type="number" name="SecondVal" id="SecondVal"><br> <label for="Result">Result</label><br> <input type="number" name="Result" id="Result"readonly><br> <br><br> <input type="button" value="+" onclick="Calculate()"> <input type="button" value="-" onclick="Calculate()"> <input type="button" value="x" onclick="Calculate()"> <input type="button" value="/" onclick="Calculate()"> <input type="button" value="C" onclick="Calculate()"> </form> var firstNum = document.getElementById("firstVal").innerHTML; var secondNum = document.getElementById("SecondVal").innerHTML; var Resul = document.getElementById("Result"); var Operator= document.querySelectorAll('value'); function Calculate() { var Sol; switch (Operator){ case "+" : Sol=firstNum+secondNum console.log(Sol) break; case "-" : Sol=firstNum-secondNum console.log(Sol) break; case "x" : Sol=firstNum*secondNum console.log(Sol) break; case "/" : Sol=firstNum/secondNum console.log(Sol) break; case "C" : firstNum&secondNum&Resul==null break; }; };mi problema está en el interruptor, como puede ver, estoy tratando de crear una función que determinará qué operación realizará en función del valor del atributo que le di a la declaración del interruptor Operador como clave para verificar y no sé si me estoy perdiendo algo o estoy haciendo algo mal, por favor déjame saber si hay alguna forma de lograr lo anterior
Cosas que cambié:
Mejoras sugeridas:
var formElement = document.getElementById('calculate'); var firstInputElement = document.getElementById("firstVal"); var secondInputElement = document.getElementById("secondVal"); var resultInputElement = document.getElementById("Result"); function Calculate(value) { var nA = +firstInputElement.value; var nB = +secondInputElement.value; var Sol; switch (value) { case "+": Sol = nA + nB break; case "-": Sol = nA - nB break; case "x": Sol = nA * nB break; case "/": Sol = nA / nB break; case "C": formElement.reset() return; }; resultInputElement.value = Sol }; <form action="" id="calculate"> <label for="firstVal">numberA</label><br> <input type="number" name="firstVal" id="firstVal"><br> <label for="SecondVal">numberB</label><br> <input type="number" name="secondVal" id="secondVal"><br> <label for="Result">Result</label><br> <input type="number" name="Result" id="Result" readonly><br> <br><br> <input type="button" value="+" onclick="Calculate(this.value)"> <input type="button" value="-" onclick="Calculate(this.value)"> <input type="button" value="x" onclick="Calculate(this.value)"> <input type="button" value="/" onclick="Calculate(this.value)"> <input type="button" value="C" onclick="Calculate(this.value)"> </form>