Estoy creando un juego de aventuras de elige tu propia que usa una barra de salud y textos cambiantes. Mi barra de salud puede cambiar con mi código actual, pero el texto no. ¿Hay algo que este olvidando? ¿Que puedo hacer? Los dos botones están identificados con "btn q1" y dice "Pregunta1", y "btn q2" y dice "Pregunta2". Me gustaría cambiar "Question1" a "Question1A", etc. Aquí está mi html para los botones:
<div class="click"> <span class="btn q1" id="btn q1" onclick="remove(); change();"> Question1 </span> <span class="btn q2" id="btn q2" onclick="remove(); change();"> Question2 </span> </div>;Y mi javascript:
var _Health = 100; function remove() { let addHealth = document.getElementById("health"); _Health += 20; if (addHealth) { addHealth.style.width = _Health + "%"; addHealth.innerHTML = _Health + "ep"; } } function remove() { let damage = document.getElementById("health"); _Health -= 10; if (damage) { damage.style.width = _Health + "%"; damage.innerHTML = _Health + "ep"; } } function change() { var elem = document.getElementById("btn q1"); if ((elem.value = "Question1")) elem.value = "Question1A"; else elem.value = "Question1B"; } function change() { var elem = document.getElementById("btn q2"); if (elem.value == "Question2") elem.value = "Question2A"; else elem.value = "Question2B"; }No puede crear funciones con el mismo nombre. Debería crear remove1() y remove2() por ejemplo, y llamarlos al botón. Pero no es la forma correcta: necesitas generalizar las funciones. Considere el ejemplo de Manuel en el comentario: es suficiente pasar el parámetro con el nombre del botón y ejecutar todas las cosas con el nombre pasado.
<span class="btn_q1" id="btn_q1" onclick= "remove(10); change(“btn_q1”, “Question1A”);">Question1</span> <span class="btn_q2" id="btn_q2" onclick= "remove(20); change(“btn_q2”,”Question1B”);">Question2</span> </div>Y en el js:
function change(btn,value) { var elem = document.getElementById(btn); elem.value = value; } function remove(n) { let addHealth = document.getElementById('health') _Health += n; if (addHealth) { addHealth.style.width = _Health + '%'; addHealth.innerHTML = _Health + 'ep'; } }Lo último: no use espacios de nombres en los identificadores. Use guión bajo en lugar de espacio (lo mismo en las clases)