How do you do jQuery’s hasClass
with plain ol’ JavaScript? For example,
<body class="foo thatClass bar">
What’s the JavaScript way to ask if <body>
has thatClass
?
The hasClass() method checks if any of the selected elements have a specified class name. If ANY of the selected elements has the specified class name, this method will return "true".
Simply use classList.contains()
:
if (document.body.classList.contains('thatClass')) { // do some stuff }
Other uses of classList
:
document.body.classList.add('thisClass'); // $('body').addClass('thisClass'); document.body.classList.remove('thatClass'); // $('body').removeClass('thatClass'); document.body.classList.toggle('anotherClass'); // $('body').toggleClass('anotherClass');
Browser Support:
classList
Browser Support
You can check whether element.className
matches /\bthatClass\b/
.\b
matches a word break.
Or, you can use jQuery's own implementation:
var className = " " + selector + " "; if ( (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(" thatClass ") > -1 )
To answer your more general question, you can look at jQuery's source code on github or at the source for hasClass
specifically in this source viewer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With