Change background color on click using JavaScript

avatar

Borislav Hadzhiev

Last updated: Jul 25, 2022

banner

Check out my new book

Table of Contents #

  1. Change the page's background color on click
  2. Change the elements's background color on click
  3. Change another element's background color on click

Change the pages's background color on click #

To change the page's background color on click:

  1. Add a click event listener to an element.
  2. Each time the element is clicked, set the document.body.style.backgroundColor property to a specific color.

Here is the HTML for the example in this article.

index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <div id="box">Some text here</div> <button id="btn">Button</button> <script src="index.js"></script> </body> </html>

And here is the related JavaScript code.

index.js
const btn = document.getElementById('btn'); btn.addEventListener('click', function onClick(event) { // 👇️ change background color document.body.style.backgroundColor = 'salmon'; // 👇️ optionally change text color // document.body.style.color = 'white'; });

change background color on click

We added a click event listener to the button, so a function is invoked every time the button is clicked.

Each time the button is clicked, we set the document.body.style.backgroundColor property to salmon and change the page's background color.

Change the element's background color on click #

To change an element's background color on click:

  1. Add a click event listener to the element.
  2. Assign the event object to a variable in the function.
  3. Set the event.target.style.backgroundColor property to the specific background color.
index.js
const btn = document.getElementById('btn'); btn.addEventListener('click', function onClick(event) { // 👇️ change background color event.target.style.backgroundColor = 'salmon'; // 👇️ optionally change text color // event.target.style.color = 'white'; });

change element background color on click

Every time the button from the example is clicked, its own background color gets set.

We used the target property on the event object. The target property is a reference to the object (element) on which the event was dispatched.

In other words, event.target gives us access to the DOM element the user clicked.

You can console.log the target property to see the DOM element which was clicked by the user.

index.js
const btn = document.getElementById('btn'); btn.addEventListener('click', function onClick(event) { console.log(event.target); // 👇️ change background color event.target.style.backgroundColor = 'salmon'; // 👇️ optionally change text color // event.target.style.color = 'white'; });

log clicked element on click

If you click on the button and look at your console output, you'll see the button element being logged.

Change another element's background color on click #

To change another element's background color on click:

  1. Add a click event listener to one of the elements.
  2. Each time the element is clicked, change the style.backgroundColor property of the other element.

Here is the HTML for the example.

index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <div id="box">Some text here</div> <button id="btn">Button</button> <script src="index.js"></script> </body> </html>

And here is the related JavaScript code.

index.js
const btn = document.getElementById('btn'); btn.addEventListener('click', function onClick(event) { const box = document.getElementById('box'); box.style.backgroundColor = 'coral'; // 👇️ optionally change text color // box.style.color = 'white'; });

change another elements background color on click

Each time the button is clicked, we change the div's background color to coral.

Use the search field on my Home Page to filter through my more than 3,000 articles.