JQuery के साथ पहले "n" आइटम का चयन


217

Jquery के साथ, मुझे पृष्ठ से केवल पहले "n" आइटम का चयन करने की आवश्यकता है, उदाहरण के लिए सामान्य रूप से उन सभी का चयन करने के बजाय पहले 20 लिंक।

$("a")

सरल लगता है, लेकिन jQuery के मैनुअल में ऐसा कुछ होने का कोई सबूत नहीं है।

जवाबों:


378

आप शायद स्लाइस पर पढ़ना चाहते हैं । आपका कोड कुछ इस तरह दिखाई देगा:

$("a").slice(0,20)

65
हालांकि :lt(20)दृष्टिकोण अधिक स्वच्छ लग रहा है, टुकड़ा उपयोग कर रहा है बहुत अधिक कुशल है, तो आप एक बड़े परिणाम सेट के साथ शुरू कर दिया है। दुर्भाग्य से, जब ": lt" और अन्य स्थितीय चयनकर्ताओं का मूल्यांकन करते हैं, तो jQuery पूरे सेट के माध्यम से लूप करता है , भले ही यह केवल पहला तत्व प्राप्त कर रहा हो। मैंने अपने ब्लॉग पर इसके बारे में यहाँ और अधिक लिखा है: spadgos.com/?p=51
nickf

1
धन्यवाद, मेरे अनुरोध की एक आवश्यकता प्रदर्शन के बारे में थी, इसलिए यह मेरे लिए सही उत्तर था। दूसरों को धन्यवाद देने के लिए धन्यवाद: lt चयनकर्ता भी।
ओमिडियम

3
@Nickf द्वारा जानकारीपूर्ण टिप्पणी, लेकिन ब्लॉग लिंक और ग्राफ लिंक काम नहीं करता है
Fractalf

1
अब खेद को संपादित नहीं किया जा सकता - मूल रूप से, स्लाइस का उपयोग करना बहुत तेज था।
निकफ

92

लेफ्टिनेंट छद्म चयनकर्ता का उपयोग करें:

$("a:lt(n)")

यह nth एक (nth तत्व को बाहर करने से पहले) तत्वों से मेल खाता है। नंबरिंग 0 से शुरू होती है।


13
JQuery डॉक्स के अनुसार , आधुनिक ब्राउज़र में .slice तेज है।
ब्‍लॉइज

1
मुझे jQuery शैली का उपयोग पसंद है, यह जंजीर की तुलना में अधिक सुरुचिपूर्ण है।
फेडिर RYKHTIK

22

मुझे यह नोट एलटी () डॉक्स के अंत में मिला :

अतिरिक्त नोट्स:
क्योंकि: लेफ्टिनेंट (j) एक jQuery एक्सटेंशन है और CSS विनिर्देशन का हिस्सा नहीं है, जो कि उपयोग कर रहे हैं: lt () देशी DOM querySelectorAll () विधि द्वारा प्रदान किए गए प्रदर्शन को बढ़ावा देने का लाभ नहीं उठा सकते हैं। आधुनिक ब्राउज़रों में बेहतर प्रदर्शन के लिए, इसके बजाय $ ("your-pure-css-selector") का उपयोग करें। स्लाइस (0, इंडेक्स)।

इसलिए $("selector").slice(from, to)बेहतर प्रदर्शन के लिए उपयोग करें ।



7

.llice () हमेशा बेहतर नहीं होता है। मेरे मामले में, क्रोम 36 में jQuery 1.7 के साथ, .llice (0, 20) त्रुटि के साथ विफल रहा:

रेंजError: अधिकतम कॉल स्टैक आकार पार हो गया

मैंने पाया कि: lt (20) ने इस मामले में त्रुटि के बिना काम किया। मेरे पास संभवतः हजारों मिलान तत्व थे।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.