Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

183
Views
innerHTML won't display random text

Today I made this JS code which, on a button click, should select a random message from the list and then display it. However, it just grabs one from the list (test4) and displays that specific one all the time. I can't figure out what to do to solve the problem. When I log it to the console I get the correct html.

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 answers
Answer question

0

The problem is with your if condition where you are not evaluating but simply assigning a value. This means your last if condition overrides the result. You need to use == instead of =

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!