Czy można to zrobić w bardziej zwięzły sposób?Czy istnieje szybki sposób na zawijanie jQuery wokół każdego elementu w tablicy?
var src = $('div');
var dest = [];
for (var i = 0; i < src.length; i++)
dest[i] = $(src[i]);
mogę myśleć tylko o tym, co jest wciąż dość gadatliwy:
var dest = [];
$('div').each(function() { dest.push($(this)); });
Czy jQuery zaoferować coś lepszego w tym przypadku? Nie mogę tego znaleźć.
Aby rozwiązać niektóre z powtarzających się pytań w komentarzach:
src[i]
jest już obiekt jQuery, nazywającjQuery(src[i])
nic nie robi.
Nie, to zwykły węzeł DOM, bez żadnych zawijań jQuery.
Po prostu z ciekawości, dlaczego w ogóle to robisz?
Bo potem będę musiał zrobić sporo faszerowania każdym elementem osobno. Na przykład, muszę przejrzeć wszystkie, aby znaleźć najwyższy, a następnie ustawić pozostałe na tej samej wysokości. Potem muszę uzyskać wszystkie ich szerokości i wykonać na nich pewne układy (więc każdy element otrzymuje swoje współrzędne x & y oparte na szerokościach innych elementów). Itp
Wszystkie te zabiegi są wykonywane łatwiej, jeśli mogę użyć skrótowym funkcje przewidziane przez jQuery, ale to oznacza, że muszę owinąć każdy element osobno ($('div')
zwracane tylko otoki wokół wszystko z nich). A ponieważ muszę odwiedzać każdy element wiele razy, chciałbym zwiększyć wydajność, opakowując każdą z nich tylko raz, a nie przy każdej wizycie.
'src [i] 'jest już obiektem jQuery, a wywołanie' jQuery (src [i]) 'nic nie robi. – Barmar
'$ .map ($ (" div "), funkcja (val, i) {return $ (val);}' maybe? –
@Barmar - nie, jest to obiekt DOM z wanilią –