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.

Get Started With Sentry

Get actionable, code-level insights to resolve JavaScript performance bottlenecks and errors.

  1. Create a free Sentry account

  2. Create a JavaScript project and note your DSN

  3. Grab the Sentry JavaScript SDK

Click to Copy
<script src="https://browser.sentry-cdn.com/7.112.2/bundle.min.js"></script>
  1. Configure your DSN
Click to Copy
Sentry.init({ dsn: 'https://<key>@sentry.io/<project>' });

Loved by over 4 million developers and more than 90,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.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

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