Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

188
Vistas
innerHTML no mostrará texto aleatorio

Hoy hice este código JS que, al hacer clic en un botón, debería seleccionar un mensaje aleatorio de la lista y luego mostrarlo. Sin embargo, solo toma uno de la lista (test4) y muestra ese específico todo el tiempo. No sé qué hacer para solucionar el problema. Cuando lo registro en la consola, obtengo el html correcto.

 var r_text = new Array(); var r_pm = new Array(); let pm1 = `<p id="pname"></p> <h3 id="pm">test1</h3>` let pm2 = `<p id="pname"></p> <h3 id="pm">test2</h3>`; let pm3 = `<p id="pname"></p> <h3 id="pm">test3</h3>`; let pm4 = `<p id="pname"></p> <h3 id="pm">test4</h3>`; let pm5 = `<p id="pname"></p> <h3 id="pm">test5</h3>`; function nextPM() { getPM(); getPname(); } function getPM() { r_pm[0] = pm1; r_pm[1] = pm2; r_pm[2] = pm4; i = Math.floor(3 * Math.random()) let pm = r_pm[i] console.log(pm) if (pm = pm1) { pm1text(); } if (pm = pm2) { pm2text(); } if (pm = pm3) { pm3text(); } if (pm = pm4) { pm3text(); } } function pm1text() { document.getElementById("pmdiv").innerHTML = `${pm1}` if (pmanswer = fix) { goodanswer(); } if (pmanswer = agyogyit) { badanswer(); let hibapont = +1; } } function pm2text() { document.getElementById("pmdiv").innerHTML = `${pm2}` if (pmanswer = agyogyit) { goodanswer(); } if (pmanswer = fix) { badanswer(); let hibapont = +1; } } function pm3text() { document.getElementById("pmdiv").innerHTML = `${pm3}` if (pmanswer = agyogyit) { goodanswer(); } if (pmanswer = fix) { badanswer(); let hibapont = +1; } } function pm4text() { document.getElementById("pmdiv").innerHTML = `${pm4}` if (pmanswer = agyogyit) { goodanswer(); } if (pmanswer = fix) { badanswer(); let hibapont = +1; } }
 <div id="pmdiv"></div> <article> <button class="button" id="next" onclick="nextPM();">Next</button> </article>

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema es con su condición if donde no está evaluando sino simplemente asignando un valor. Esto significa que su última condición if anula el resultado. Necesitas usar == en lugar de =

 var r_text = new Array(); var r_pm = new Array(); let pm1 = `<p id="pname"></p> <h3 id="pm">test1</h3>` let pm2 = `<p id="pname"></p> <h3 id="pm">test2</h3>`; let pm3 = `<p id="pname"></p> <h3 id="pm">test3</h3>`; let pm4 = `<p id="pname"></p> <h3 id="pm">test4</h3>`; let pm5 = `<p id="pname"></p> <h3 id="pm">test5</h3>`; function nextPM() { getPM(); } function getPM() { r_pm[0] = pm1; r_pm[1] = pm2; r_pm[2] = pm4; i = Math.floor(3 * Math.random()) let pm = r_pm[i] if (pm == pm1) { pm1text(); } if (pm == pm2) { pm2text(); } if (pm == pm3) { pm3text(); } if (pm == pm4) { pm3text(); } } function pm1text() { document.getElementById("pmdiv").innerHTML = `${pm1}` } function pm2text() { document.getElementById("pmdiv").innerHTML = `${pm2}` } function pm3text() { document.getElementById("pmdiv").innerHTML = `${pm3}` } function pm4text() { document.getElementById("pmdiv").innerHTML = `${pm4}` }
 <div id="pmdiv"> </div> <article><button class="button" id="next" onclick="nextPM();">Next</button></article>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda