2009-12-23 13 views
12

में तत्वों की एक श्रृंखला प्राप्त करना मेरी समस्या यह है कि मेरे पास एक टेबल है, लेकिन मुझे केवल पंक्तियों का सबसेट चाहिए, पहले इंडेक्स से अंतिम सूचकांक तक। मैंने सोचा कि आप इसे इस तरह कर सकता है:एक jQuery चयनकर्ता

$('table tr:gt(2):lt(5)'); 

मैंने सोचा कि यह आप ही पंक्तियों देना होगा # 3 और # 4 लेकिन यह आपको लगता है कि अधिक से अधिक दे रही है समाप्त होता है। मैं केवल पंक्तियों # 3 और # 4 चुनने के लिए चयनकर्ता को कैसे बता सकता हूं?

+0

यह भी देखें [.slice()] (http://api.jquery.com/slice/) –

उत्तर

19

आप बहुत करीब हैं, लेकिन आपके चयनकर्ता में समस्या :lt(5) फ़िल्टर है।

आप की तरह कुछ चाहेगा:

$('table tr:gt(2):lt(2)'); 

अंतर यह है कि समय lt() फ़िल्टर लागू करने पर से, पहले तीन तत्वों को पहले ही सेट (gt() फिल्टर द्वारा) से हटा दिया गया है। तो यह तीसरे और चौथे तत्व (शून्य-अनुक्रमित) को 8 वें के माध्यम से तीसरे स्थान पर ले जाएगा।

+0

बिल्कुल सही! यह उम्मीद के रूप में काम करता है। इसे स्पष्ट करने के लिए धन्यवाद। – Bob

+0

मुझे लगता है कि एक साइड प्रश्न के रूप में मैं एक श्रेणी चयनकर्ता जोड़ने के लिए एक सुविधा अनुरोध कहां जमा कर सकता हूं, ताकि यह $ ('तालिका tr: in (2,4)') या कोई प्लगइन हो जो पहले से ही ऐसी कार्यक्षमता को पूरा करता है? – Bob

+1

@ बॉब आपको वास्तव में 'स्लाइस' का उपयोग करके देखना चाहिए क्योंकि @ डेववार्ड ने उत्तर दिया था। यह बहुत अधिक पठनीय है और जिस तरह से आप इसकी अपेक्षा करते हैं उस पर काम करेंगे। साथ ही, आपको इस तरह से काम करके कोई प्रदर्शन लाभ नहीं मिल रहा है, फिर भी यह सभी 'टेबल tr' ढूंढ रहा है और फिर उस सूची को फ़िल्टर कर रहा है। –

0

मुझे लगता है कि आपको यह पता चला है, हालांकि मुझे लगता है कि jQuery इसके तत्वों की अनुक्रमणिका में 0 से गिना जाएगा।

तो क्या यह gt (1) और lt (4) होगा?

+0

ठीक है, यह शून्य सूचकांक से है। मेरी गलती। – Bob

10

कैसे $। ('तालिका tr') टुकड़ा (2, 4)

के बाद से जावास्क्रिप्ट सरणियों 0 अनुक्रमित हैं, कि आप तालिका के तीसरे और चौथे पंक्ति दे देंगे के बारे में। स्लाइस अभी भी एक jQuery लपेटा (उप) सेट वापस करेगा, तो यह एक ही अंत परिणाम है।

+0

हां, लेकिन मैं चयनकर्ता को केवल निर्दिष्ट पंक्तियों को देखने के लिए चाहता हूं। उस विधि के साथ, jQuery पहले सभी तालिका पंक्तियों को लाता है, फिर अवांछित तालिकाओं को फ़िल्टर करता है। – Bob

+0

@ बॉब, ऐसा लगता है कि अगर आप चयनकर्ता संस्करण –

+0

ओह का उपयोग करते हैं, तो यह निराशाजनक है। मैंने माना कि आंतरिक रूप से jQuery उन पंक्तियों पर छोड़ देगा जो दिए गए इंडेक्स से कम हैं, या जब आप अपने संबंधित चयनकर्ता संशोधक का उपयोग करते हैं तो पंक्तियां दिए गए इंडेक्स से अधिक होती हैं। कम से कम इस तरह से सभी टेबल पंक्तियों पर विचार नहीं करना पड़ेगा। – Bob

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