SO-answer

See: http://stackoverflow.com/questions/25243058/selector-addclassclassname-in-pure-javascript

by KooiInc MeHere

HTML

<script src="http://www.nicon.nl/genericsvc/fiddle/fiddlemeta.js"></script>
<div class="solink" data-linkid="25243058">
    <div class="linkhover">loading....</div>
</div>

CSS

.white {color: white}
.backblack {background-color: black;}
.default {background-color: transparent; color: black; transition: all ease-in-out 1s 0s;}
.redOnYellow {background-color: yellow; color: red; transition: all ease-in-out 1s 0s;}

JavaScript

// window.Helper is loaded from an external script
log2Screen  = Helper.log2Screen;
HtmlWrapper = Helper.HtmlWrapper;

// create a span element instance
var span = new HtmlWrapper('span');

// show it on the screen
log2Screen(span.createElement('wait a sec, we will invert this, using 2 classes', 'classaddex'));

// add 2 classnames to span#classaddex after about 1.5 seconds
var el = document.querySelector('#classaddex');
setTimeout(function() { addClass(el, 'backblack'); addClass(el, 'white');}, 1500);

// show another span
log2Screen(span.createElement('click to toggle redOnYellow class', 'classaddex2'));

// use a click handler to toggle, using add-/removeClass
var el2 = document.querySelector('#classaddex2');
el2.style.cursor = 'pointer';
$(el2).on('click', toggleROnY);

function addClass(element, classname){
    var currentClassList = (element.className || '').split(/\s+/);
    currentClassList.push(currentClassList.indexOf(classname) > -1 ? '' : classname);
    element.className = currentClassList.join(' ').trim();
}

function removeClass(element, classname){
    var currentClassList = (element.className || '').split(/\s+/)
       ,classIndex = currentClassList.indexOf(classname) > -1;
    if (classIndex > -1) {
        currentClassList = currentClassList.splice(classIndex,1);
    }
    element.className = currentClassList.join(' ').trim();
}

function toggleROnY(){
    var currentClassList = (this.className || '').split(/\s+/)
       ,isroy = currentClassList.indexOf('redOnYellow') > -1
       ,add = addClass.partial(this)
       ,remove = removeClass.partial(this)
    remove(isroy ? 'redOnYellow' : 'default');
    add(isroy ? 'default' : 'redOnYellow');
}