2012-01-16 5 views

risposta

11

Basta combinare le due cose e dovrebbe funzionare:

$("td:gt(3):lt(6)");

è possibile utilizzare qualsiasi numero di pseudo-selettori. Saranno tutti applicabili.

Tuttavia, si noti che la risposta slice sarà molto più efficiente di questa!

Aggiornamento

Il codice di cui sopra è sbagliato. È necessario scambiare rotondo :lt e :gt perché dopo il selettore gt viene eseguita l'insieme di elementi corrispondenti è ridotta e gli indici che :lt vale a sei diverso:

$("td:lt(6):gt(3)"); 

Tuttavia, come menzionato sopra, sarà meglio slice, prestazioni saggio. Se sei interessato a quanto sarà migliore questa performance, ho messo insieme uno quick test. Ecco i risultati (slice è quasi 4 volte più veloce):

enter image description here

+0

Hai provato questo? – dknaack

+0

@dknaack - Sì: http://jsfiddle.net/gKbKQ/ –

+0

ho provato il tuo campione con un tavolo più grande. La tua risposta dovrebbe essere giusta ma ho uno strano effetto. http://jsfiddle.net/gKbKQ/2/ Qualche idea? – dknaack

10

Sfruttate slice(start, end)

$('td').slice(3,6) 

documentation

Problemi correlati