Solusi @rvighne bekerja dengan baik, tetapi seperti yang diidentifikasi dalam komentar ParentElementdan ClassListkeduanya memiliki masalah kompatibilitas. Untuk membuatnya lebih kompatibel, saya telah menggunakan:
function findAncestor (el, cls) {
while ((el = el.parentNode) && el.className.indexOf(cls) < 0);
return el;
}
parentNodeproperti bukan parentElementproperti
indexOfmetode di classNameproperti bukan containsmetode di classListproperti.
Tentu saja, indexOf hanya mencari keberadaan string itu, tidak peduli apakah itu keseluruhan string atau tidak. Jadi jika Anda memiliki elemen lain dengan kelas 'leluhur-jenis' itu masih akan kembali sebagai telah menemukan 'leluhur', jika ini merupakan masalah bagi Anda, mungkin Anda dapat menggunakan regexp untuk menemukan pasangan yang tepat.
pelemen. Jika Anda benar-benar hanya ingin mendapatkan simpul induk, Anda bisa melakukannyaele.parentNode.