2012-08-08 16 views
9

मैं एक निश्चित इंडेक्स के साथ एक कंटेनर पर एक वर्ग को एक तत्व कैसे जोड़ूं?jQuery के साथ पहले बच्चे को कक्षा कैसे जोड़ें?

मैं इस वक्त जो पहला तत्व प्रभावित करना चाहिए (वैसे भी काम नहीं करता है)

$('#resultsBox li:first-child').addClass('aaaa'); 

कोशिश कर रहा हूँ लेकिन मैं किसी भी तत्व में यह सूचकांक होने कंटेनर के वर्ग को बदलने में सक्षम होना चाहता हूँ।

ईजी अगर मैं = 2.

<div id="resultsBox"> 
<ul> 
<li></li> 
<li></li> 
<li></li> 
</ul> 
</div> 

बन चाहिए सूचकांक के साथ तत्व संशोधित करना चाहते हैं:

<div id="resultsBox"> 
<ul> 
<li></li> // Index 0 
<li></li> // Index 1 
<li class="selected"></li> // Index 2 
</ul> 
</div> 

उत्तर

21

:first उपयोग चयनकर्ता:

$('#resultsBox li:first').addClass('aaaa'); 

और तीसरा तत्व चयन के लिए , आप each() विधि का उपयोग कर सकते हैं: Here is jsFiddle.

$('ul li').each(function(i) { 
    if (i === 2) { 
     $(this).addClass('aaaa'); 
    } 
}); 

या आप Jamiec & MrThys उल्लेख की तरह eq विधि के साथ ऐसा कर सकते हैं: लेकिन प्रत्येक विधि बहुत उपयोगी है जब चीजें जटिल हो रही हो जाएगा।

$('#resultsBox li').eq(2).addClass('aaaa'); 
0

eq selector

$('#resultsBox li:eq(2)').addClass('aaaa'); 

या eq function

$('#resultsBox li').eq(2).addClass('aaaa'); 
+0

इसे और अधिक उपयोग करने के लिए कुशल होगा [ '.eq()' विधि] (http://api.jquery.com/ eq /), चूंकि चयनकर्ता एक jQuery एक्सटेंशन है और सीएसएस का हिस्सा नहीं है। –

4

इस को प्राप्त करने का स्पष्ट तरीका होगा: .eq पद्धति पर

$('#resultsBox li').eq(2).addClass('selected'); 

प्रलेखन ख कर सकते हैं ई यहां पाया गया: http://api.jquery.com/eq/

2

पहले चयनकर्ता, या: nth-child selector का उपयोग करें। मैं इसका उल्लेख करता हूं: एनएच-चाइल्ड सिलेक्टर बस अगर आप पहले के अलावा किसी अन्य चीज़ को कक्षाएं जोड़ना चाहते हैं। तुम भी उपयोग कर सकते हैं: n वें वाले बच्चे सादे सीएसएस में जावास्क्रिप्ट के बिना अगर आप चाहते हैं

$("#resultBox li:nth-child(1)").addClass('aaa'); 
संबंधित मुद्दे