2011-10-11 22 views
6

मैं एक डोम संरचना है कि इस तरह दिखता है में मेल खाने वाले सभी तत्वों भर में एक वर्तमान तत्व के सूचकांक प्राप्त करना:डोम

<div class="chapter"> 
    <section></section> 
    <section></section> 
</div> 
<div class="chapter"> 
    <section></section> 
    <section></section> 
    <section class="current"></section> 
    <section></section> 
</div> 
<div class="chapter"> 
    <section></section> 
    <section></section> 
    <section></section> 
    <section></section> 
</div> 

मैं "वर्तमान के एक वर्ग के साथ खंड का इंडेक्स नंबर प्राप्त करना चाहते हैं ", सभी वर्गों में। इस उदाहरण में इसकी अनुक्रमणिका 5 होगी, क्योंकि यह 5 वां अनुभाग टैग है और इसमें वर्तमान की कक्षा है।

मैं इसे jQuery के साथ कैसे प्राप्त करूं?

मैं डोम में सभी वर्गों की एक सूची प्राप्त करने के लिए इस के साथ शुरू कर दिया है:

alert($(sections+'.current').index()); 
:

var sections = $('section'); 

मैं इस तरह बातें कोशिश करते हैं और परिणाम मैं चाहता हूँ प्राप्त करने के लिए कोशिश की है

जो एक जेएस त्रुटि देता है।

मुझे यहां क्या याद आ रही है? धन्यवाद! इस

var sections = 'section'; 

अपने कोड की तरह

उत्तर

11

आपके कोड में $('section') आपको सभी अनुभागों को एक jquery वस्तु के रूप में वापस कर देगा।

sections.index($(".current")); 

यह आपको वर्ग वर्तमान के साथ खंड के एक रिश्तेदार सूचकांक है, जो होगा 4 के रूप में $('sections') वापसी होगी वापसी होगी: इनमें एक वर्ग जो current के एक वर्ग आप यह कर सकता है के सूचकांक प्राप्त करने के लिए आप एक jQuery ऑब्जेक्ट ऐरे (0 अनुक्रमित) जिसमें सभी अनुभाग तत्व शामिल हैं। तो जो तत्व मेल खाता है वह 5 वां तत्व है और सूचकांक वापस आ जाएगा 4. आशा है कि यह fiddle मदद करता है।

+0

ऐसा लगता है कि इसे काम करना चाहिए, असल में, मैंने इसे यहां परीक्षण किया है http://jsfiddle.net/uae2U/ और यह करता है, लेकिन दुर्भाग्यवश मेरे कोड में यह वापस आ रहा है -1। यह मुझे करीब आता है, तो धन्यवाद! – Cory

+0

यदि इसकी वापसी -1 है तो चयनकर्ताओं में शायद कुछ गलती हो सकती है। अगर कोई मैच नहीं है तो सूचकांक() वापस आ जाएगा। –

0

परिवर्तन इस कर रही है और इसके गलत

alert($($('section')+'.current').index()); 
+0

धन्यवाद, लेकिन मैं नहीं देखता कि यह कैसे मदद करता है। var वर्ग = 'सेक्शन' सेटिंग; एक पाठ स्ट्रिंग बनाने से ज्यादा कुछ नहीं करता है। – Cory

+0

यदि आपको इस var वर्ग = $ ('सेक्शन') की तरह उपयोग करना चाहिए; फिर केवल इस चेतावनी का उपयोग करें (section.hasClass ('current')। अनुक्रमणिका()); –

6
$('.current').index('section'); 

index पर डॉक्स देखें।

यदि कोई चयनकर्ता स्ट्रिंग को तर्क के रूप में पारित किया जाता है, तो .index() चयनकर्ता द्वारा मेल खाने वाले तत्वों के सापेक्ष मूल तत्व की स्थिति को इंगित करने वाला एक पूर्णांक देता है। यदि तत्व नहीं मिला है, तो .index() वापस आ जाएगा -1।

+0

यह भी काम करता है। धन्यवाद! – Cory