juktastockJS Add/Remove Classes for adjacent Elements

Add/Remove Classes With Raw Javascript

See for Add/Remove Classes for free Elements
<box class="close" onclick='toggleClass(this,"open")'>
    ..
</box>
		
box.close:after {
	content: '▼';
    padding: .2em 2em;
    line-height: 1em;
    font: 10 arial;
    cursor: pointer;
}
box.close.open:after {
	content: '▲';
}
		
function toggleClass(el, className) {
	if (hasClass(el, className))removeClass(el, className)
		else addClass(el, className);
};
function hasClass(el, className) {
  if (el.classList)
    return el.classList.contains(className)
  else
    return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'))
}

function addClass(el, className) {
  if (el.classList)
    el.classList.add(className)
  else if (!hasClass(el, className)) el.className += " " + className
}

function removeClass(el, className) {
  if (el.classList)
    el.classList.remove(className)
  else if (hasClass(el, className)) {
    var reg = new RegExp('(\\s|^)' + className + '(\\s|$)')
    el.className=el.className.replace(reg, ' ')
}}
		

jukta stock code HTML CSS JS

Jukta Design SV Jukta Engine licensing CC BY-NC 4.0 2016