Traté de hacer una entrada y cualquiera que sea el número que esté allí, para agregarlo usando un botón. No puedo entender lo que falta en mi código y por qué no está agregando el valor de la entrada.
¿Necesito convertir a un número de una cadena o?
let funds = document.getElementById("funds"); let input = document.getElementById("input").value; let add = document.getElementById("add"); let base = 0; function adauga() { funds.innerText = base += input; } <p>Funds Available</p> <p id="funds">0$</p> <input id="input" type="number" class="text-black w-28 rounded-xl border-2 border-red-700" /> <button id="add" onclick="adauga()" class="ml-4 bg-red-700 px-3 py-1 rounded-xl">Add</button>En vez de
let input = document.getElementById("input").value;deberías estar usando
let input = document.getElementById("input");y obtener el valor de entrada actual con
funds.innerText = (base+= input.valueAsNumber)+"$";Dos problemas.
La primera es, como usted señaló correctamente, que el número debe ser coaccionado a una cadena.
La segunda es que está configurando inmediatamente el valor de input al valor de ese elemento en lugar de usar el nuevo valor del cuadro de entrada para cambiar el contenido del texto. Así que toma el valor en la función en su lugar.
let funds = document.getElementById("funds"); let input = document.getElementById("input"); let add = document.getElementById("add"); let base = 0; function adauga() { funds.textContent = `${(base += Number(input.value))}$`; } <p>Funds Available</p> <p id="funds">0$</p> <input id="input" type="number" class="text-black w-28 rounded-xl border-2 border-red-700" /> <button id="add" onclick="adauga()" class="ml-4 bg-red-700 px-3 py-1 rounded-xl">Add</button>Documentación adicional