Można użyć metody jQuery: .filter()
, która pozwala, między innymi, na argument selektora do filtrowania wybranych węzłów w obiekcie jQuery.
var filtered = s.filter(':lt(2)');
Należy pamiętać, że to nie zmienia pierwotnej wartości s
, więc będziesz miał wszystkie swoje div
sw s
, a twoje filtrowane div
sw filtered
.
Alternatywnie, jak już zaznaczono, a zostało omówione w komentarzach, można użyć Array.prototype.slice
.
var sliced = $(s.slice(0,2));
To technicznie działa szybciej niż .filter()
. Jednak może również sprawić, że twój kod stanie się mniej czytelny/zrozumiały. Wzrost wydajności może być również bardzo znikomy, chyba że wykonasz tę operację wiele tysięcy razy lub więcej w bardzo krótkim czasie.
Czytelność a wydajność to walka, którą często toczy się programowanie, a ostatecznie jesteś jedynym, który może zdecydować, który z nich wygra dla twojego własnego kodu.
Pod względem wydajności użycie 'plaster()' jest lepsze, ponieważ polegasz na natywnej funkcjonalności JS. – AlexL
1+ .. Nie widzę powodu, dla którego to zostało odrzucone. Robi dokładnie to, co chce OP. Wydajność jest prawdopodobnie znikoma. –
Został wycofany, ponieważ OP chce lepszego sposobu. O ile ta odpowiedź zapewnia lepszy sposób w zakresie czytelności, wariant ten nie jest najlepszy pod względem wydajności w porównaniu z sugerowaną alternatywą OP. – AlexL