Hallo,
ich kann ein - für mich nicht nachvollziehbares - Verhalten bei der Ausführung einer JavaScript-Schleife nicht nachvollziehen.
Ich habe folgendes (hier gekürztes) Array definiert...
Hauptmenue = new Array ("Startseite", "Wir über uns", "Rüstzeug", "Waffen", "Gewandung", "Schmuck");
...und arbeite es mittels folgender Schleife ab:
for (i = 0, l = Hauptmenue.length; i < l; i++)
{
Sidebar += '<div class="Button">' + Hauptmenue[i] + '</div>';
Arrayname = TextBereinigen(Hauptmenue[i]);
alert(Arrayname);
}
function TextBereinigen(Text)
{
if (Text.indexOf(" ") !== -1)
{
Worter = Text.split(" ");
Text = "";
for (i = 0, l = Worter.length; i < l; i++)
{
Worter[i] = Worter[i].substr(0, 1).toUpperCase() + Worter[i].substr(1);
Text = Text.concat(Worter[i]);
}
}
Text = Text.str_replace(["Ä", "ä", "Ö", "ö", "Ü", "ü", "ß", "/"], ["Ae", "ae", "Oe", "oe", "Ue", "ue", "ss", ""]);
return Text;
}
In dieser Konstellation wird mir die Schleife nur einmalig ausgeführt.
Lasse ich hingegen den Aufruf der Textbereinigungsfunktion weg und ersetze im alert-Befehl "Arrayname" gegen "Hauptmenue[i]", so werden mir alle Elemente ausgegeben.
Woran liegt dies?
Vielen Dank für eure Hilfe und Gruß,
Enrico