JQuery में एक ज्ञात वर्ग के साथ माता-पिता कैसे खोजें?


244

मेरे पास इसके भीतर <div>कई अन्य <div>एस हैं, प्रत्येक एक अलग घोंसले के स्तर पर है। हर बच्चे को <div>एक पहचानकर्ता देने के बजाय, मैं सिर्फ जड़ <div>को पहचानकर्ता देता हूं । यहाँ एक उदाहरण है:

<div class="a" id="a5">
  <div class="b">
    <div class="c">
      <a class="d">
      </a>
    </div>
  </div>
</div>

यदि मैं कक्षा में प्रतिक्रिया देने के लिए jQuery में एक फ़ंक्शन लिखता हूं dऔर मैं इसके माता-पिता, कक्षा के लिए आईडी ढूंढना चाहता हूं a, तो मैं यह कैसे करूंगा?

मैं बस नहीं कर सकता $('.a').attr('id');, क्योंकि कई वर्ग हैं a। मुझे इसके माता-पिता के माता-पिता की आईडी मिल सकती है लेकिन ऐसा लगता है कि खराब डिजाइन, धीमा, और बहुत बहुरूपिक नहीं है (मुझे कक्षा के लिए आईडी खोजने के लिए अलग-अलग कोड लिखना होगा c)।

जवाबों:


490

यह मानते हुए कि thisहै .d, तो आप लिख सकते हैं

$(this).closest('.a');

closestविधि अपने तत्व यह है कि चयनकर्ता से मेल खाता के अंतरतम माता पिता देता है।


47
ध्यान दें कि बहुत कम पकड़ है: यदि आपका प्रारंभिक तत्व क्वेरी से मेल खाता है, तो आपको इसके बजाय मूल तत्व नहीं मिलता है। यह वांछित व्यवहार हो भी सकता है और नहीं भी। यदि नहीं, तो मैं इसे पुनः शामिल करता हूं: $ (यह) .परेंट ()। निकटतम ('ए');
रिस्सर्ड २ R ’

1
बहुत मददगार। मैं हमेशा $ (यह) .परेंट ()। पेरेंट () पेरेंट () और मुझे पता था कि एक बेहतर उपाय है।
वांग'ल पखरीन

28

चयनकर्ता को jQuery के माता-पिता समारोह में पास करें:

d.parents('.a').attr('id')

EDIT हम्म, वास्तव में स्लैक्स का जवाब बेहतर है यदि आप केवल निकटतम पूर्वज चाहते हैं जो आपके चयनकर्ता से मेल खाता है।


8

सभी माता-पिता को दिए गए चयनकर्ता के साथ प्राप्त करने के लिए आप माता-पिता () का उपयोग कर सकते हैं ।

विवरण: मिलान तत्वों के वर्तमान सेट में प्रत्येक तत्व के पूर्वजों को प्राप्त करें, एक चयनकर्ता द्वारा वैकल्पिक रूप से फ़िल्टर किया गया।

लेकिन मूल () तत्व का पहला अभिभावक मिलेगा।

विवरण: मिलान किए गए तत्वों के वर्तमान सेट में प्रत्येक तत्व के माता-पिता को प्राप्त करें, एक चयनकर्ता द्वारा वैकल्पिक रूप से फ़िल्टर किया गया।

jQuery के माता-पिता () बनाम माता-पिता ()

और .parentsUntil () है जो मुझे लगता है कि सबसे अच्छा होगा।

विवरण: मिलान किए गए तत्वों के वर्तमान सेट में प्रत्येक तत्व के पूर्वजों को प्राप्त करें, लेकिन चयनकर्ता द्वारा मिलान किए गए तत्व को शामिल न करें।


वह केवल एक ही माता-पिता चाहता है , इसलिए उसे फोन करना चाहिए closest
स्लाक्स


0

@ Resord की टिप्पणियों के ऊपर से निकाला गया। इसने मेरे लिए काम किया और प्रश्न के साथ और अधिक निकटता से जुड़ा हुआ है।

$(this).parent().closest('.a');

धन्यवाद

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.