Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JQuery - $('#test ul > li').index(2).hide(); - possible?

Can I work with the index value so easily? I think using the natural index values is better then using classes. I want to use the .index in that way.

Html

<div id="test">
<ul>
<li>Im index 0</li>
<li>Im index 1</li>
<li>Im index 2</li>
<li>Im index 3</li>
</ul>
</div>

Pseudo (Jquery) Javascript

$('#test ul > li').index(2).hide();

$('#test ul > li').index(1).click(function() {
 alert('lulz you clicked the li with the index value of 1 bro');
});

I doesnt find a clue how to work this way with the .index value.. is it possible to work that easily with this method??

like image 242
Tomkay Avatar asked Jan 04 '11 08:01

Tomkay


2 Answers

You can use eq:

$('#test ul > li').eq(2).hide();

It can also be a part of your selector:

$('#test ul > li:eq(2)').hide();

If you want the third li in all uls in #test, you can use nth-child (note it is 1-based):

$('#test ul > li:nth-child(3)').hide();
like image 176
Kobi Avatar answered Sep 30 '22 12:09

Kobi


Yes you can. You want .eq() however, instead of .index():

$('#test ul > li').eq(2).hide();

Or as part of the selector:

$('#test ul > li:eq(2)').hide();
like image 23
David Tang Avatar answered Sep 30 '22 13:09

David Tang