È possibile utilizzare il metodo .filter()
di jQuery, che consente, tra le altre cose, un argomento selettore per filtrare i nodi selezionati in un oggetto jQuery.
var filtered = s.filter(':lt(2)');
Si noti che questo non modifica il valore originale di s
, in modo da avere tutti i tuoi div
s in s
, e le tue filtrati div
s in filtered
.
In alternativa, come hai già detto ed è stato discusso nei commenti, è possibile utilizzare Array.prototype.slice
.
var sliced = $(s.slice(0,2));
Questo tecnicamente è più veloce di .filter()
. Tuttavia, potrebbe anche rendere il tuo codice meno leggibile/comprensibile. È probabile che anche il guadagno di prestazioni sia estremamente trascurabile a meno che non si esegua questa operazione molte migliaia di volte o più in un brevissimo periodo di tempo.
La leggibilità e le prestazioni sono una battaglia combattuta spesso in fase di programmazione e, in definitiva, sei l'unico in grado di decidere quale si vince per il tuo codice.
In termini di prestazioni, l'utilizzo di 'slice()' è migliore dal momento che si sta facendo affidamento sulla funzionalità JS nativa. – AlexL
1+ .. Non vedo perché questo è stato downvoted. Fa esattamente quello che l'OP vuole. Le prestazioni sono probabilmente trascurabili. –
È stato downvoted perché OP vuole un modo migliore. Mentre questa risposta fornisce un modo migliore in termini di leggibilità, questa variante non è la migliore in termini di prestazioni rispetto all'alternativa suggerita dall'OP. – AlexL