In an article, I wrote how to hide and show DOM elements using inline styles in JavaScript. Today, you'll learn to hide and show elements using CSS classes in JavaScript.
Let us first declare a simple CSS class that hides the element, if applied, by setting display: none
:
.hidden {
display: none;
}
Next, say we have the following <button>
element:
<button class="btn">Click Me</button>
Now, if you want to hide the above button from the DOM, add the hidden
class by using the add()
method provided by the classList object, like below:
// grab button element
const button = document.querySelector('.btn')
// hide it
button.classList.add('hidden')
To show the element again, simply removes the hidden
class using the classList.remove()
method:
button.classList.remove('hidden')
While inline styles work perfectly to toggle the element visibility, the CSS class gives you more flexibility to control the behavior like this.
Creating hide()
& Show()
methods
The classList
object provides methods to add, remove, and toggle CSS classes from an element in JavaScript.
Let us use classList
to create our own jQuery-like hide()
, show()
, and toggle()
methods in pure JavaScript:
// hide an element
const hide = elem => {
elem.classList.add('hidden')
}
// show an element
const show = elem => {
elem.classList.remove('hidden')
}
// toggle the element visibility
const toggle = elem => {
elem.classList.toggle('hidden')
}
Now, if you want to hide or show any DOM element, call the above method:
// hide
hide(document.querySelector('.btn'))
// show
show(document.querySelector('.btn'))
// toggle
toggle(document.querySelector('.btn'))
Read this guide to learn more about handling CSS classes in vanilla JavaScript.
✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.