var test = document.getElementById("start").innerHTML; document.getElementById("submit").onclick = function() { var textinput = document.getElementById("inputbox").value; console.log(textinput) if(textinput.charAt(0) == test.slice(-1) ) { document.getElementById("start").innerHTML = document.getElementById("start").innerHTML.replace(test,textinput) } }Estoy tratando de averiguar por qué cada vez que presiono el botón en mi sitio html, solo obtengo la instrucción if para ejecutarse una vez. Mi objetivo es intercambiar un fragmento de texto en mi sitio html cada vez que la última letra es la misma que la primera letra de cualquier texto escrito dentro de un cuadro de entrada y se presiona el botón, pero solo funciona para presionar un botón para algunos razón
Es porque declaras var test = document.getElementById("start").innerHTML; fuera de la función onclick. Por lo tanto, solo se ejecuta una vez y su valor nunca se actualiza.
Póngalo dentro de la función para obtener su nuevo valor cada vez que presione el botón.
document.getElementById("submit").onclick = function(e) { e.preventDefault(); const textinput = document.getElementById("inputbox").value; const test = document.getElementById("start").innerHTML; console.log(textinput) if (textinput.charAt(0) == test.slice(-1)) { document.getElementById("start").innerHTML = document.getElementById("start").innerHTML.replace(test, textinput) } } <span id="start">Somebody once told me the world is gonna roll me</span> <form> <input type="text" id="inputbox" /> <button id="submit">Submit</button> </form>