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

273
Views
Changing background color of HTML Table cell after Javascript Changes it

I have an HTML table that outputs like this: (It's manually built in HTML and styled with CSS via classes rowStyle1 and rowStyle2)

enter image description here

When the user clicks the buttons for next week or previous week, the page loads a schedule and, if there is any datapoint to load into the table, it both puts the text in the cell and changes the background color with this code:

 document.getElementById(cellID).innerText = parsed.title
 document.getElementById(cellID).style.backgroundColor = "#cc00cc"

The problem is, when the user wants to change weeks, the table should be "cleared out", and made ready for the new data. That doesn't happen even though I put this code at the beginning of the function that triggers when either button is pressed:

let cells = document.getElementsByClassName("rowStyle1")

for (let i = 0; i < cells.length; i++) {
    cells[i].style.backgroundColor = "#ffffff"
}

let cells2 = document.getElementsByClassName("rowStyle2")

for (let i = 0; i < cells2.length; i++) {
    cells2[i].style.backgroundColor = "#d8ebfa"
}

I know this code works, because I can change the colors of the cells when the page first loads using this code, but it still leaves a colored cell left over when I change weeks:

enter image description here

How do I change the color of the cell back so I can "reset" the table to get ready for the new data? Does it have something to do with setting the color via javascript?

(BTW, this whole code has been written in native HTML, CSS, and JavaScript, so any solutions that don't involve any plug-ins would be greatly appreciated!)

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

It's generally a bad idea to set styles directly with JavaScript. It is usually better to set a class, ...

(NB: Don't repeatedly look for element references, but store it):

const cell = document.getElementById(cellID);
cell.innerText = parsed.title
cell.classList.add("highlighted");

... and the all you need to do is remove that class again, when you reset:

for (let i = 0; i < cells.length; i++) {
  cells[i].classList.remove("highlighted");
}
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!