2010-10-13 13 views
6

सूखी घास, मैं इस तरहjQuery चेनिंग पैरेंट(), क्या कोई आसान तरीका है?

$(this).parent().parent().attr("id") 

$ इस

<div id="some-id"> 
    <h2><a href="#">Title</a></h2> 
</div> 

जैसे कुछ मार्कअप और कुछ jQuery (यह है) 'h2'

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

$(this).parent("div").attr("id") 

की कोशिश की, लेकिन यह काम नहीं किया।

धन्यवाद

उत्तर

14

आप .closest() उपयोग कर सकते हैं, इस तरह:

$(this).closest("div").attr("id") 

You can test it here.parent("div") के रूप में ऐसा लगता है के रूप में सहज नहीं है, यह हो जाता है केवलतत्काल माता पिता अगर यह चयनकर्ता से मेल खाता, .closest() माता-पिता जब तक यह चयनकर्ता से मेल खाता चढ़ते हैं।

ध्यान दें कि (इस उदाहरण पर लागू नहीं होता) यदि this चयनकर्ता से मेल खाता है, यह रिटर्न कि तत्व, यह पहली माता पिता के साथ नहीं शुरू करता है, यह अपने आप के साथ शुरू होता है।

+0

क्या .closest() केवल ऊपर बढ़ता है? या यह भी नीचे चलेगा? – dotty

+0

@ डॉटी - अगर आप बच्चों को '.find()' का उपयोग करना चाहते हैं, तो यह केवल माता-पिता के पास जाता है, हालांकि आपके पास केवल एक पैरेंट पथ हो सकता है, बच्चों के पास कई शाखाएं हो सकती हैं ... तो यह निर्भर करता है कि आप क्या कर रहे हैं। –

संबंधित मुद्दे