Gibt es eine schnelle Möglichkeit, jQuery um jedes Element in einem Array zu wickeln?

8

Kann dies auf eine präzisere Art geschehen?

%Vor%

Ich kann nur daran denken, was immer noch ziemlich ausführlich ist:

%Vor%

Bietet jQuery für diesen Fall etwas Besseres? Ich kann es nicht finden.

Um einige der wiederkehrenden Fragen in den Kommentaren zu beantworten:

  

src[i] ist bereits ein jQuery-Objekt, das Aufrufen von jQuery(src[i]) tut nichts.

Nein, es ist ein einfacher DOM-Knoten ohne jQuery-Wrappings.

  

Nur aus Neugier, warum überhaupt?

Denn danach muss ich ziemlich viel mit jedem einzelnen Element herumspielen. Zum Beispiel muss ich über alle von ihnen gehen, um den höchsten zu finden, und dann den Rest von ihnen auf die gleiche Höhe setzen. Danach muss ich alle ihre Breiten erhalten und einige Layouts basierend darauf ausführen (so erhält jedes Element seine X- und Y-Koordinaten basierend auf den Breiten anderer Elemente). Etc.

All diese Manipulationen werden einfacher durchgeführt, wenn ich die von jQuery zur Verfügung gestellten Kurzbefehle verwenden kann, aber das bedeutet, dass ich jedes Element einzeln umbrechen muss ( $('div') hat nur einen Wrapper um alle von zurückgegeben) Sie). Und da ich jedes Element mehrmals besuchen muss, möchte ich die Leistung steigern, indem ich jedes einzelne Element nicht nur bei jedem Besuch einpacke.

    
Vilx- 16.05.2013, 09:09
quelle

2 Antworten

8

Genau dafür steht map() . Sie durchlaufen jedes Element und wenden eine Funktion auf das Element an und schieben es auf ein neues Array.

%Vor%

oder zur besseren Lesbarkeit

%Vor%     
Henrik Andersson 16.05.2013, 09:36
quelle
1

Sie sollten Dom-Knoten nicht in jQuery-Objekt konvertieren.

Sie sollten so etwas versuchen,

%Vor%

Oder noch besser,

%Vor%


Ich bin nicht sehr gut in js perf, aber hier ist ein Test Ссылка

    
Jashwant 16.05.2013 10:07
quelle

Tags und Links