JSFiddle - React, Tailwind, and code Playground
by toddmotto
HTML
<a id="button" href="#">Click a few times, toggle me!</a>
CSS
a {
margin:20px;
padding:10px 15px;
background:#FFD202;
border-radius:5px;
color:#222;
display:inline-block;
text-decoration:none;
}
.active {
background:#000;
color:#FFD202;
}
JavaScript
// hasClass
function hasClass(elem, className) {
return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');
}
// toggleClass
function toggleClass(elem, className) {
var newClass = ' ' + elem.className.replace( /[\t\r\n]/g, " " ) + ' ';
if (hasClass(elem, className)) {
while (newClass.indexOf(" " + className + " ") >= 0 ) {
newClass = newClass.replace( " " + className + " " , " " );
}
elem.className = newClass.replace(/^\s+|\s+$/g, '');
} else {
elem.className += ' ' + className;
}
}
document.getElementById('button').onclick = function() {
toggleClass(this, 'active');
}