Desde la entrada, ingreso números en el texto de entrada, luego tengo 5 botones que tienen funciones. Traté de hacer que el primer botón menos el número por 1, pero no sé cuándo hago clic en el número para obtener -1, pero no lo hace. No mostrar cambios en el cuadro de entrada. ¿Cómo puedo arreglar esto? Quiero decir que no sé cómo hacerlo porque intenté usar number.innerHTML = number-=1 pero no funciona. Aquí está mi código html y javascript:
var number = document.getElementById("number"); number = number.value; function minus() { number.value = number -= 1; console.log(number); } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div> <input type="text" id="number" id="output"> <input type="button" value="<" onclick="minus();"> <input type="button" value=">" onclick="plus();"> <input type="button" value="FLIP" onclick="flip();"> <input type="button" value="STORE" onclick="store();"> <input type="button" value="CHECK" onclick="check();"> </div> </body> </html>Ok, pensemos lógicamente aquí
var number = document.getElementById("number"); number = number.value; function minus() { number.value = number -= 1; console.log(number); } primero está asignando el ELEMENTO HTML en sí mismo a la var "número", luego está cambiando el valor de la var "número" al valor del elemento HTML, entonces number.value = number - 1 está tratando de establecer la propiedad de "valor" de un objeto numérico, que no tiene sentido, porque ya no está conectado al elemento HTML
Solo haz dos variables, debería estar bien, como
var number = document.getElementById("number"); var numberValue = number.value; function minus() { numberValue = number.value; number.value = numberValue -= 1; console.log(number,numberValue); } o alternativamente, solo necesita un total de variable, y no necesita reasignarlo a "número.valor", pero lo único es que de esta manera no hay garantía de que número.valor sea un número en absoluto, pero cuando configúrelo en una variable primero, como arriba, puede verificar if(!isNaN) o algo similar, pero aún así, si queremos asumir que solo se ingresarán números, podemos hacer algo como
var number = document.getElementById("number"); function minus() { number.value = number.value -= 1; console.log(number,number.value); }Prueba esto en su lugar.
var number = document.getElementById("number"); function minus() { number.value = number.value -= 1; console.log(number); } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div> <input type="text" id="number" id="output"> <input type="button" value="<" onclick="minus();"> <input type="button" value=">" onclick="plus();"> <input type="button" value="FLIP" onclick="flip();"> <input type="button" value="STORE" onclick="store();"> <input type="button" value="CHECK" onclick="check();"> </div> </body> </html>