Alternative is a recursive function. This is slightly different to closest as i searches the children, I'm not sure if closest does.
function closest(elem) {
if( elem.className.indexOf("non-unique-identifier") ) {
return elem;
}
var parent = elem.parentNode;
for(var i = 0; i< parent.children.length; i++ ) {
if( parent.children[i].className.indexOf("non-unique-identifier")!=-1) {
return parent.children[i];
}
}
return closest(parent);
}
var elem = document.getElementById('unique-identifier');
var cl = closest(elem);
console.log(cl);
Non children searching example (more like closest):
function closest(elem) {
if( elem.className.indexOf("non-unique-identifier") ) {
return elem;
}
var parent = elem.parentNode;
if( parent.className.indexOf("non-unique-identifier")!=-1) {
return parent;
}
return closest(parent);
}
var elem = document.getElementById('unique-identifier');
var cl = closest(elem);
console.log(cl);