@rvighne çözümü iyi çalışıyor, ancak yorumlarda belirtildiği gibi ParentElementve ClassListher ikisinin de uyumluluk sorunları var. Daha uyumlu hale getirmek için kullandım:
function findAncestor (el, cls) {
while ((el = el.parentNode) && el.className.indexOf(cls) < 0);
return el;
}
parentNodeözellik yerine parentElementözellik
indexOfyöntem üzerinde classNameözellik yerine containsyöntem classList.
Tabii ki, indexOf sadece bu dizenin varlığını arıyor, dizenin tamamı olup olmadığını umursamıyor. Eğer 'ancestor-type' sınıfına sahip başka bir elemanınız varsa, yine de 'atası' bulmuş gibi geri dönecektir, eğer bu sizin için bir problemse, belki de tam bir eşleşme bulmak için regexp kullanabilirsiniz.
p. Aslında sadece üst düğümü almak istiyorsanız, bunu yapabilirsinizele.parentNode.