juliocavalcanti icon

Pure Javascript functions

juliocavalcanti | PRO | 10/17/17 09:41:32 PM UTC | 0 ⭐ | 239 👁️ | Never ⏰ | []
JavaScript |

1.17 KB

|

None

|

0 👍

/

0 👎

function getParentBySelector(node, selector, stop_selector = 'body') {
    var parent = node.parentNode;
    while (true) {
        if (parent.matches(stop_selector)) break;
        if (parent.matches(selector)) break;
        parent = parent.parentNode; // get upper parent and check again
    }
    if (parent.matches(stop_selector)) parent = null; // when parent is a tag 'body' -> parent not found
    return parent;
};
 
var hasClass = function(el, cls) {
    var regexp = new RegExp('(\\s|^)' + cls + '(\\s|$)'),
        target = (typeof el.className === undefined) ? window.event.srcElement : el;
    return target.className.match(regexp);
}
 
function addClass(element, classname){
    var currentClassList = (element.className || '').split(/\s+/);
    currentClassList
     .push(currentClassList.indexOf(classname) > -1 ? '' : classname);
    element.className = currentClassList.join(' ').trim();
}
 
function removeClass(el, classNameToRemove){
    var elClass = ' ' + el.className + ' ';
    while(elClass.indexOf(' ' + classNameToRemove + ' ') !== -1){
         elClass = elClass.replace(' ' + classNameToRemove + ' ', '');
    }
    el.className = elClass;
}

Comments