2011-01-04 4 views
8

Posso lavorare con il valore dell'indice così facilmente? Penso che l'uso dei valori dell'indice naturale sia meglio dell'uso delle classi. Voglio usare il .index in questo modo.

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'); 
}); 

ho doesnt trovare un indizio su come lavorare in questo modo con il valore .index .. è possibile lavorare che facilmente con questo metodo??

risposta

12

È possibile utilizzare eq:

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

può anche essere una parte della vostra selettore:

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

Se vuoi il terzo li in tutte le ul s in #test, è possibile utilizzare nth-child (nota si-basa 1):

$('#test ul > li:nth-child(3)').hide(); 
1

Lo stai usando con un numero intero (numero), ma puoi usarlo solo con un selettore o elemento. here

Edit:
Si potrebbe scrivere la propria funzione in questo modo:

function indexValue(index) 
{ 
    $(element).each(function(key, val) { 
     if(key+1 == index) // + 1 because you started from 0 
     { 
      return val; 
     } 
    }); 
} 
5

Sì, è possibile. Volete .eq() però, invece di .index():

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

o come parte del selettore:

$('#test ul > li:eq(2)').hide(); 
0
$(document).ready(function(){ 
    $("button#1").click(function(){ 
    $("p").hide(); 
    }); 
}); 
$(document).ready(function(){ 
    $("button#2").click(function(){ 
    $("p").show(); 
    }); 
}); 
<button id="1">Clica-me</button> 
<button id="2">Volta-me</button>