Sentry Answers>JavaScript>

How to add a class to an HTML element with JavaScript

How to add a class to an HTML element with JavaScript

David Y.

The Problem

How can I add one or more additional classes to an HTML element that already has a class defined? For example, I want to transform this:

Click to Copy
<p class="article-content" id="target"> This is the first paragraph of my article. </p>

Into this:

Click to Copy
<p class="article-content highlighted" id="target"> This is the first paragraph of my article. </p>

The Solution

The preferred way to do this in modern JavaScript is by using the add() method on the element’s classList property. For example, using the HTML p element defined above:

Click to Copy
const myParagraph = document.getElementById("target"); myParagraph.classList.add("highlighted");

To undo this change, we can use the remove method:

Click to Copy
myParagraph.classList.remove("highlighted");

Note that if the class to be removed is not present in the element’s classList, this method will do nothing.

An alternative, more brittle method for achieving this is by directly editing className, which contains the string assigned to the element’s class attribute. We could do this as follows:

Click to Copy
myParagraph.className += " highlighted"

Note that we’ve placed a space in front of our additional class to separate it from the element’s existing classes.

Using className like this does not allow us to easily remove classes as we can with classList. This approach was more common in older versions of JavaScript, before classList was introduced, and should be avoided in modern code.

  • ResourcesImprove Web Browser Performance - Find the JavaScript code causing slowdowns
  • SentryJavascript Error Monitoring & Tracing
  • ResourcesJavaScript Frontend Error Monitoring 101
  • Syntax.fmListen to the Syntax Podcast
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.