2012-05-02 17 views
9

मैं एक jQuery सेट में एक तत्व का स्थान प्राप्त करने की कोशिश कर रहा हूं।jQuery सूचकांक समारोह?

Here's what I tried so far.

मैं इस तरह कुछ करने के लिए सक्षम होना चाहते हैं:

$('ul').find('a').indexOf('.active'); 

और a के के सेट में .active के स्थान मिलता है।

क्या jQuery के लिए indexOf() फ़ंक्शन जैसा कुछ है? index() विधि

+0

आउटपुट क्या होना चाहिए? – gdoron

+0

@gdoron आउटपुट 2 होने की उम्मीद है (यह तीसरा 'ए' तत्व है) – tobyodavies

+0

@tobyodavies। [एक सहायक अधिभार है] (http://stackoverflow.com/a/10406578/601179)। – gdoron

उत्तर

10

यदि आप एक jQuery सेट ($searchFor) को index किसी अन्य jQuery सेट ($searchIn) की विधि के लिए तर्क के रूप में पास करते हैं यानी

$searchIn.index($searchFor) 

यह सेट $searchIn

में $searchFor के सूचकांक वापस आ जाएगी अपने उदाहरण में:

$('ul a').index($('ul a.active')); 

+3

नोट: '$ ('ul a')' '$ ('ul') के बराबर है। ('A') ' – tobyodavies

+3

... और थोड़ा तेज – Alp

+0

@Alp। [यह भी तेज़ है] (http://stackoverflow.com/a/10406578/601179) क्योंकि इसे दो बार डीओएम से पूछताछ करने की आवश्यकता नहीं है। – gdoron

-2

काम नहीं करता है तुम बस selector में इसके लिए पूछ कर ऐसा कर सकते हैं:

$('ul a.active') 

आप फिर भी स्थान हो रही द्वारा क्या मतलब है? क्या आपका मतलब स्थिति है? या यूआरएल?

यदि आप जानना चाहते हैं कि आप click पर कहें तो आप कहें .. आप अपने ईवेंट फ़ंक्शन के अंदर $(this) का उपयोग करेंगे।

:

$('ul a.active').click(function(){ 
    alert($(this).position()); 
}) 

URL स्थान प्राप्त करने के लिए:

स्थान प्राप्त करने के लिए: यहाँ एक उदाहरण है जो तत्व की वर्तमान स्थिति देता है आप, पर क्लिक करें अगर वहाँ .active वर्ग के साथ कई हैं

$('ul a.active').click(function(){ 
    alert($(this).attr('href')); 
}) 
+0

स्थान इंडेक्स को संदर्भित करता है, आपको यूआरएल या तत्व नहीं मिल सकता है (सामान्य रूप से) एक jQuery सेट के लिए एक रिश्तेदार अकेले रहने दें। इसके अलावा ओपी स्पष्ट रूप से जानता है कि खोज का उपयोग कैसे करें, इसलिए '$ ('ul a.active') स्पष्ट रूप से कुछ भी नहीं करता है जो ओपी पूछ रहा है। – tobyodavies

+0

वह 'इंडेक्स' के लिए पूछ रहे 'इंडेक्स' के लिए नहीं पूछ रहा है, आखिर में मैंने जांच की कि ये अलग थे। –

+0

"अनुक्रमणिका" से "इंडेक्स" अलग कैसे है? मैं एक ऐसी भाषा के बारे में नहीं सोच सकता जो एक ही ऑब्जेक्ट प्रकार पर लागू होता है, और उन भाषाओं के बीच जो वे समानार्थी हैं। ओपी ने "इंडेक्सऑफ" शब्द "इंडेक्स" शब्द का उपयोग नहीं किया क्योंकि यह सरणी और तारों पर जेएस में निर्मित विधि का नाम है। इसके अलावा, क्योंकि वह "इंडेक्सऑफ" की तलाश में है, इसका मतलब है कि वह _an index_ को एक यूआरएल नहीं ढूंढ रहा है, न कि स्थिति समन्वय, यह मेरा मुद्दा था। – tobyodavies

0

तुम बस index समारोह एक jQuery वस्तु देने की जरूरत है:

var elements = $('ul a'); 
var index = elements.index(elements.filter('.active')); // 2 

alert(index); 

Live DEMO


ऐसा कोई समारोह बॉक्स से बाहर है, यह आसानी से इस तरह किया जा सकता है:

var index = -1; 
$('ul a').each(function(i){ 
    if ($(this).hasClass('active')){ 
     index = i; 
     return false; 
    } 
}); 

alert(index); 

Live DEMO

0

आपका तर्क आवाज़ है, आप बस गलत तत्व को पकड़ रहे हैं: http://jsfiddle.net/xz9dW/19/

var index = $('ul a.active').closest('li').index(); 

a लिंक में index() मान नहीं है क्योंकि इसमें कोई भाई बहन नहीं है; आपको li

+0

मैं सेट में 'ए' की अनुक्रमणिका को पकड़ने में सक्षम होना चाहता हूं – qwertymk

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