2010-08-09 6 views
6

come faccio a selezionare solo il terzo elemento (o qualche altro no della mia chioce) con jquery? per esempio: come faccio a cambiare lo sfondo di solo terzo li con jquery. qualsiasi aiuto per favoreseleziona solo terzo li

risposta

14

Come faccio a selezionare solo 3 ° (

Utilizzare il metodo eq in questo modo:

$('li').eq(2).css('background', 'yellow'); 

Oppure si può usare questa variante del selettore :eq filtro:

$('li:eq(2)').css('background', 'yellow'); 

L'indicizzazione inizia da 0, è necessario specificare 2 per selezionare in realtà il terzo li

Se invece si desidera selezionare ogni terzo elemento, è necessario utilizzare nth-child come questo:

$('li:nth-child(3n)') 

L'indice per nth-child inizia da 1 però.

+0

Per curiosità, ho ingannato un po 'con il selettore. Come risulta, usando 'slice' e act e l'intero set di wrapper è più veloce dell'uso di' nth-child'. http://www.jsfiddle.net/qbDKN/13/ – jAndy

+0

@jAndy: È un lavoro intelligente :) – Sarfraz

+0

@jAndy - Sto ottenendo risultati opposti, con 'eq' quasi due volte più lento. Ricorda 'nth-child' è un selettore css e viene implementato in modo nativo da alcuni browser. – Kobi

7

Se è necessario il terzo li su tutti gli elenchi, utilizzare nth-child:

$('li:nth-child(3)') 
+0

Questo selezionerà ogni terzo figlio non solo – Sarfraz

+0

@Sarfraz - sarebbe 'nth-child (3n)' – Kobi

+0

Suppongo di essere sottovalutato perché Sarfraz ha modificato la sua risposta per includere il mio, dopo aver affermato che non è corretta. Bei tempi. – Kobi