Ada fungsi standar untuk melakukan ini: Element.closest . Sebagian besar browser kecuali IE11 mendukungnya ( detail oleh caniuse.com ). Dokumen MDN juga menyertakan polyfill jika Anda harus menargetkan browser lama.
Untuk menemukan orang tbodytua terdekat yang diberikan, thAnda dapat melakukan:
th.closest('tbody');
Jika Anda ingin menulis fungsi sendiri - inilah yang saya buat:
function findClosestParent (startElement, fn) {
var parent = startElement.parentElement;
if (!parent) return undefined;
return fn(parent) ? parent : findClosestParent(parent, fn);
}
Untuk menemukan orang tua terdekat dengan nama tag Anda bisa menggunakannya seperti ini:
findClosestParent(x, element => return element.tagName === "SECTION");