पहले को छोड़कर सभी बाल तत्वों का चयन करें


83

कहो मैं निम्नलिखित है:

<ul>
 <li>First item</li>
 <li>Second item</li>
 <li>Third item</li>
</ul>

मैं jQuery का उपयोग करके पहले एक के बाद सभी बच्चे तत्वों का चयन कैसे करूंगा? तो मैं कुछ हासिल कर सकता हूं जैसे:

<ul>
 <li>First item</li>
 <li class="something">Second item</li>
 <li class="something">Third item</li>
</ul>

जवाबों:


138

आपको "नहीं" और "पहले बच्चे" चयनकर्ताओं का उपयोग करने में सक्षम होना चाहिए।

$("li:not(:first-child)").addClass("something");

http://docs.jquery.com/Selectors/not

http://docs.jquery.com/Selectors/firstChild


मैंने यह कोशिश की: $ ('। सर्टिफिकेट इनपुट: चेकबॉक्स: नहीं: (पहला बच्चा)') लेकिन यह काम नहीं किया ....
क्रिस कैनाल

क्या यह नीचे सूचीबद्ध स्लाइस विधि से धीमी होगी?
क्रिस मैराती-जॉर्ज 13

36

यहाँ चार तरीकों के मेरे पूरी तरह से अवैज्ञानिक विश्लेषण के आधार पर, ऐसा लगता है कि उनके बीच बहुत अधिक अंतर नहीं है। मैं एक पृष्ठ पर प्रत्येक को अलग-अलग लंबाई की अनियंत्रित सूचियों की एक श्रृंखला पर चलाता था और उन्हें फायरबग प्रोफाइलर का उपयोग करके समयबद्ध करता था।

$("li").slice(1).addClass("something");

औसत समय: 5.322 मी

$("li:gt(0)").addClass("something");

औसत समय: 5.590 मी

$("li:not(:first-child)").addClass("something");

औसत समय: 6.084ms

$("ul li+li").addClass("something");

औसत समय: 7.831 मी


3
मुझे यह प्रश्न आया क्योंकि मुझे सभी बच्चों को प्राप्त करने की आवश्यकता थी लेकिन पहले। मैं यह सब h3 पर कर रहा था जो एक div में थे। मैंने आपके पृष्ठ पर ऊपर की तरह तीन प्रश्नों को चलाया और 2-3 बार तक सबसे तेज़ होने के रूप में नहीं: (प्रथम-बच्चे) के साथ आया। मुझे लगता है कि जिस तरह से आपका पृष्ठ संरचित है वह प्रोफाइल गति में भी खेल सकता है। किसी भी तरह से हालांकि इस जवाब ने मुझे सिखाया कि फायरबग प्रोफाइलर का उपयोग कैसे करें और मैं इसके लिए आपको धन्यवाद देता हूं।
RedWolves

13

http://docs.jquery.com/Traversing/slice

$("li").slice(1).addClass("something");

यह एक अच्छा उत्तर है, लेकिन मुझे लगता है कि मैंने उत्तर के रूप में जो चुना है वह अधिक स्पष्ट उपयोग है। चयनकर्ता में जो भी किया जा रहा है, उस परियोजना के लिए कोई भी नया तेज होगा।
क्रिस कैनाल

9

एक अधिक सुरुचिपूर्ण क्वेरी (सभी गलत तत्वों का चयन करें जो एक ली तत्व से पहले हैं):

$('ul li+li')


1
$ ("ली + ली") की संभावना तेजी से काम करेगी तो $ ("ली: नहीं (पहला बच्चा)")
सर्गेई इलिंस्की

3

मैं उपयोग करूँगा

$("li:gt(0)").addClass("something");



0

JQuery .not () विधि का उपयोग करें

$('li').not(':first').addClass('something');

या

var firstElement = $('li').first();
$('li').not(firstElement).addClass('something');
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.