Solusi @rvighne bekerja dengan baik, tetapi seperti yang diidentifikasi dalam komentar ParentElement
dan ClassList
keduanya 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;
}
parentNode
properti bukan parentElement
properti
indexOf
metode di className
properti bukan contains
metode di classList
properti.
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.
p
elemen. Jika Anda benar-benar hanya ingin mendapatkan simpul induk, Anda bisa melakukannyaele.parentNode
.