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:
<p class="article-content" id="target"> This is the first paragraph of my article. </p>
Into this:
<p class="article-content highlighted" id="target"> This is the first paragraph of my article. </p>
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:
const myParagraph = document.getElementById("target"); myParagraph.classList.add("highlighted");
To undo this change, we can use the remove
method:
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:
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 actionable, code-level insights to resolve JavaScript performance bottlenecks and errors.
Create a free Sentry account
Create a JavaScript project and note your DSN
Grab the Sentry JavaScript SDK
<script src="https://browser.sentry-cdn.com/7.112.2/bundle.min.js"></script>
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.