Hallo Gunnar!
So wie du’s eben getan hast: Den Wert von '
document.forms[formular].getElementById(menu).getElementsByTagName("li").length
' in einer Variblen speichern.
Danke, hab es entsprechend verkürzt.
Da ich den Formularnamen jetzt auch nicht mehr benötige heißt es jetzt
var menu = document.getElementById("menu_id").getElementsByTagName("li");
for (var i = 0; i < menu.length; i++) {
/* tu etwas */
}
~~~ und funktioniert soweit prima.
> Was genau ist "tu etwas"? Möglicherweise ist deine Schleife völlig unnötig.
Hm mach mir keine Angst, ich hoffe nicht. Jetzt nachdem ich mir wegen so einer Kleinigkeit stundenlang den Kopf zerbrochen hab ;)
Nungut, wie dem Variablennamen zu entnehmen ist, handelt es sich um ein Menü.
Der jeweils aktive Menüpunkt wird farbig und etwas vergrößert hervor gehoben.
Wenn ich jetzt auf einen anderen Menüpunkt klicke, sollte der erste Menüpunkt wieder seinen Status "inaktiv" einnehmen.
Meine beiden Ideen waren
1\.) nach dem Klick auf irgendeinen Menüpunkt werden ALLE Punkte in einer Schleife auf "inaktiv" gesetzt. Nach dem Schleifendurchlauf dann der angewählte Punkt auf "aktiv" und der Event-Handler/Link auf sich selbst wird entfernt.
2\.) nach dem Klick werden alle Punkte in einer Schleife durchlaufen und EINZELN geprüft ob einer auf "aktiv" steht. Dieser wird dann auf "inaktiv" gesetzt. Nach der Schleife gehts weiter wie bei Idee 1.
Ich hab mich für die zweite Idee entschieden aber häng gerade daran wie ich den aktuellen Listenpunkt in der Schleife anspreche.
Ich denk grad so:
~~~javascript
var menu = document.getElementById("menu_id").getElementsByTagName("li");
for (var i = 0; i < menu.length; i++) {
if (menu[i].class == 'aktiv' ) menu[i].class = 'inaktiv';
}
Sollte funktionieren oder? Hab es noch nicht getestet.
Oder ist meine Idee völliger Blödsinn?
Danke und Grüße, Matze