15

I have this:

<ul>
    <li>first</li>
    <li>second</li>
    <li>third</li>
    <li>fourth</li>
</ul>

Then I select it all with jQuery: $('ul').find('li'); or $('ul li');

How can I, from those two jQuery selectors get the, for instance only second li, or third, and to leave first and fourt alone?

I thought it might work with:

$('myselector').get(indexNumber); // however, it won't work.

Any ideas for this issue? Thanks.

5 Answers5

22

The get method returns the DOM element, so then you would have to wrap it inside a new jQuery object.

You can use the eq method:

var j = $('ul li').eq(1); // gets the second list item
Guffa
  • 687,336
  • 108
  • 737
  • 1,005
  • thanks, works perfectly with eq function, or in jQuery selector argument ;) thanks! –  Sep 22 '11 at 12:12
4

Use :eq() Selector. For for example, for second element use:

 $("ul li:eq(1)"); 
Andrius
  • 947
  • 15
  • 22
1

I would try:

$("ul li:nth-child(2)")
Manuel van Rijn
  • 10,170
  • 1
  • 29
  • 52
1

$('li').get(0) will return plain DOM element. you cannot call jQuery methods on same.

Chetan
  • 1,468
  • 1
  • 12
  • 15
  • thank you for the tip man, I didn't know it before man. thanks man! –  Sep 22 '11 at 12:16
0

you can use nth-child

$("ul li:nth-child(2)") //this will select second child because it is 1 based index

here is a fiddle http://jsfiddle.net/xyyWh/

Rafay
  • 30,950
  • 5
  • 68
  • 101