Struppi: abfangen von Formularelementen

Beitrag lesen

for(var i=0; document.forms[0].elements[i];++i)

  1. Die Schleife läuft bis document.forms[0].elements[i]!? Willst du darauf hinaus "ein solches Element muss existieren", oder meintest du eigentlich über alle Elemente?

Das ist eine Variante der for Schleife statt des üblichen i < X, da die Definition ist:

for( Aktion am Anfangder Schleife; Abbruchbedingung der Schleife; Aktion am Ende der Schleife)

Die Abruchbedingung kann irgendwas sein, was false ergibt, wenn die Schleife beendet wird.

  1. Du inkrementierst deine Schleife mit ++i statt i++. Ohne es auszuprobieren, es könnte sein, dass du durch das pre-increment das 0. Element überspringst.

Ich hab es auch nicht ausprobiert, aber es sollte nicht so sein, da das erst am Schleifenende passiert.

Eigentlich wird oft dazu geraten, die pre-increment Variante zu verwenden. Da sie schneller ist. Bei der Postvariante muss jedesmal eine Kopie der Variabel erzeugt werden (da der Rückgabewert, das i vor der Erhöhung ist).
Der Geschwindigkeitsvorteil dürfte allerdings meistens nicht meßbar sein und spielt wohl vor allem ene Rolle, wenn du operatoren überlädst (was in JS nicht geht) und mit komplexen Objekten arbeitest.

Struppi.