Soy nuevo en JavaScript y estoy creando un juego simple. El siguiente código se utiliza para imprimir la partitura. Sin embargo, en lugar de actualizar los valores, los agrega debajo del existente, por lo que el resultado se ve así:
Jugador 1 = 0 Jugador 2 = 0 Jugador 3 = 2 Jugador 4 = 0 Jugador 5 = 0 Jugador 1 = 0 Jugador 2 = 2 Jugador 3 = 2 Jugador 4 = 0 Jugador 5 = 0
¿Cómo puedo actualizar el valor de la puntuación en lugar de simplemente volver a imprimir los elementos de la lista? He intentado usar replaceChild pero no me ha funcionado, pero podría estar usándolo mal. También probé un booleano para ejecutar solo el playerScore creado en la línea 4 del código una vez, pero parece que no puedo pasarlo fuera del bucle if. ¡Cualquier cosa ayudará!
function printScore(){ var i=0; while(names[i] != null){ const playerScore = document.createElement('li'); playerScore.id = i +'artist'; playerScore.innerText=names[i] + " = " + window['player' + i]; currentScores.appendChild(playerScore); i++; } }
Una solución rápida y fácil es usar innerHTML para vaciar el destino antes de comenzar a agregar.
function printScore(){ currentScores.innerHTML = ""; var i=0; while(names[i] != undefined){ const playerScore = document.createElement('li'); playerScore.id = i +'artist'; playerScore.innerText=names[i] + " = " + window['player' + i]; currentScores.appendChild(playerScore); i++; } }