Berechnung der Gesamtbreite aller Listenelemente?

8

Ich habe einen Standard UL wie folgt:

%Vor%

Ich versuche eine schnelle & amp; amp; Effizienter Weg, um die Kombination aller LI-Tags zu berechnen. Derzeit habe ich:

%Vor%

Ich frage mich nur, ob es einen schnelleren Weg gibt, das gleiche Ergebnis zu erhalten, ohne eine Schleife zu benutzen?

Danke für Ihre Hilfe!

    
Fred 17.06.2010, 09:53
quelle

3 Antworten

4

Um genau zu bekommen, wonach Sie suchen, nein, gibt es nicht. Dies ist kein Fall, der gut zu bestehenden Funktionen passt, eine Schleife, wie Sie sie haben, ist der schnellste Weg. Es ist die Rede davon, ein .childWidth() oder etwas in den Kern zu setzen ... aber ich würde nicht den Atem anhalten:)

Die anderen Antworten würden die Breite des Elternteils inkl. zusätzlichem Platz beinhalten, das ist normalerweise nicht das, wonach du suchst, also für jetzt ... bleibe bei der Schleife wie du es hast. Alles, was kürzer ist, wird hinzugefügt werden, wird garantiert die gleiche Menge an Arbeit (möglicherweise identisch Code) auch darunter.

    
Nick Craver 17.06.2010, 10:48
quelle
0

Sie könnten die Breite des ul-Elements selbst ermitteln, aber das würde Ihnen die Breite einschließlich der Aufzählungszeichen und Ränder geben:

%Vor%     
Philippe Leybaert 17.06.2010 09:56
quelle
0

Wenn dies ein Menü ist und die Elemente nebeneinander liegen (und nicht darunter), versuchen Sie $('ul').outerWidth() .

[EDIT] Wenn die Breite von ul festgelegt ist, suchen Sie das letzte Element der Liste und sehen Sie sich den richtigen Offset an. Da offset immer relativ zum übergeordneten Element ist, müssen Sie nur offsetLeft und offsetWidth hinzufügen, um die Gesamtbreite aller untergeordneten Elemente zu erhalten.

    
Aaron Digulla 17.06.2010 09:57
quelle

Tags und Links