2010-07-30 18 views
9
<ul> 
    <li>No</li> 
    <li>Yes</li> 
    <li>No</li> 
</ul> 

//demostration purpose 
$('ul').get(2).text(); 


//output = Yes 

Qual è il modo migliore per accedere a un elemento specifico in un elenco? e usarlo come un selettore?jquery trova per indice in un elenco

risposta

19

È possibile utilizzare .eq() o :eq() per ottenere l'oggetto jQuery in un elenco:

$('ul li').eq(1).text(); 
//or: 
$('ul :eq(1)').text(); 

You can try a demo here. Quando ottieni .get() stai ricevendo un elemento DOM, che non ha alcuna funzione jQuery su di esso. Ricorda che entrambi sono basati su 0 quindi avrai bisogno di 1 per ottenere il "Sì" nell'esempio.

Ci sono anche altri basic filters you may be interested in, per esempio :lt() (indice tutt'altro che), :gt() (indice superiore alla), :first, :last e molti altri.

+1

@Andy - notava nella mia pagina di esempio, appena svegliato :) –

+0

'nth-child (n)' non accetta un numero a base zero in modo da usato per confondere sempre i due e dover ricontrollare. In realtà, è colpa della specifica per essere incoerente. Comunque, l'ho modificato solo per giustificare il mio +1: p –

+0

@Andy - D'accordo, considero ': nth-child()' un passo-bambino dalla testa rossa a questo punto, in realtà uso così raramente la cosa in pratica ogni giorno utilizzo comunque. Forse una volta che lasceremo il supporto per IE7 * e * IE8 (già rilasciato 6, wooohoo!) Posso iniziare a usarlo per qualcosa in CSS, ma in jQuery ho trovato che non è affatto molto utile. –

1

Usa :eq filtro di selezione:

$('ul li:eq(0)').text(); // gets first li 
$('ul li:eq(1)').text(); // gets second li 
$('ul li:eq(2)').text(); // gets third li 
// and so on 
+0

una differenza di un minuto – Prabs

Problemi correlati