2013-06-14 13 views
15

मैं निम्नलिखित HTML मार्कअप है:माता पिता तत्व के वर्ग जाओ

<div class="nav"> 
    <ul> 
     <li class="tab1"> 
     <a href="#1" class="current">Welcome</a> 
     </li> 
     <li class="tab2"> 
     <a href="#2">About</a> 
     </li> 
     <!-- and some lists more --> 
    </ul> 
</div> 

और मैं .current साथ बच्चे के माता-पिता तत्व की class प्राप्त करना चाहते हैं:

var currentli = $('.nav').find('a.current').parent().attr('class'); 
console.log(currentli); 

लेकिन यह हमेशा मुझे फेंकता undefined

नोट: मैं नहीं जानता कि जो a में वर्तमान में .current है इसलिए मुझे .find() विधि का उपयोग करना है।

+3

आपका कोड यहां काम कर रहा है: http://jsfiddle.net/FSGpz/ - 'tab1' लॉग इन है – tymeJV

+0

मेरे लिए भी काम करना। – blend

+0

क्या आप इसे एक दस्तावेज़ तैयार कॉल के भीतर चला रहे हैं? – j08691

उत्तर

28

आपका कोड पहले से ही काम करना चाहिए, लेकिन इसे और अधिक संपत्ति className बजाय का उपयोग करने की विश्वसनीय हो सकता है:

var currentli = $('.nav').find('a.current').parent().prop('className'); 
0

यह काम करेगा:

var currentli = $($('.nav').find('a.current')).parent().attr('class'); 
console.log(currentli); 

मैं बस में पाया संग्रह बदलने कर रहा हूँ एक jQuery वस्तु फिर से।

बेला देखें: http://jsfiddle.net/RaphaelDDL/wnW4u/

पी.एस. .: यदि एक से अधिक aclass="current" है, केवल पहले एक पुनर्प्राप्त किया जाएगा।

+0

'.find() 'निश्चित रूप से एक jQuery ऑब्जेक्ट देता है, और आप निश्चित रूप से इसे चेन कर सकते हैं। आप अन्यथा क्यों सोचते हैं? – nnnnnn

+0

@nnnnnn सच सच नहीं है। स्टैंडअलोन '$ .find()' जो एक सरणी वस्तु वापस करता है। – RaphaelDDL

+0

"स्टैंडअलोन' $ .find() '" क्या है? क्या आपके पास कुछ डॉको का लिंक है? (भले ही, ओपी इसका उपयोग नहीं कर रहा है।) – nnnnnn

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