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!
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.
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% 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.