Bunu yapmak için standartlaştırılmış bir işlev vardır: Element.closest . IE11 dışındaki çoğu tarayıcı bunu destekler ( ayrıntılar caniuse.com ). MDN dokümanlar da eski tarayıcıları hedef sahip durumda bir polyfill sayılabilir.
En yakını bulmak için tbody ebeveynith şunları yapabilirsiniz:
th.closest('tbody');
Fonksiyonu kendiniz yazmak istemeniz durumunda - işte ortaya çıkardığım şey:
function findClosestParent (startElement, fn) {
var parent = startElement.parentElement;
if (!parent) return undefined;
return fn(parent) ? parent : findClosestParent(parent, fn);
}
En yakın ebeveyni etiket adına göre bulmak için bunu şu şekilde kullanabilirsiniz:
findClosestParent(x, element => return element.tagName === "SECTION");