@rvighne समाधान अच्छी तरह से काम करता है, लेकिन जैसा कि टिप्पणियों में पहचाना गया है ParentElementऔर ClassListदोनों में संगतता मुद्दे हैं। इसे और अधिक सुसंगत बनाने के लिए, मैंने उपयोग किया है:
function findAncestor (el, cls) {
while ((el = el.parentNode) && el.className.indexOf(cls) < 0);
return el;
}
parentNodeसंपत्ति के बदले parentElementसंपत्ति
indexOfclassNameसंपत्ति पर विधि के बजाय संपत्ति containsपर विधि classList।
बेशक, इंडेक्सऑफ बस उस स्ट्रिंग की उपस्थिति की तलाश में है, यह परवाह नहीं करता है कि यह पूरी स्ट्रिंग है या नहीं। इसलिए यदि आपके पास कक्षा 'पूर्वज-प्रकार' के साथ एक और तत्व था, तो यह अभी भी 'पूर्वज' के रूप में पाया जाएगा, यदि यह आपके लिए एक समस्या है, तो शायद आप सटीक मिलान खोजने के लिए regexp का उपयोग कर सकते हैं।
p। यदि आप वास्तव में केवल मूल नोड प्राप्त करना चाहते हैं, तो आप कर सकते हैंele.parentNode।