Robert: Mehrere Textzeilen in JavaScript Ausgeben mit Schleife......

Hallo zusammen,

ich habe - so glaube ich ein "nur" kleines Verständnis Problem:

ich möchte Texte, welche ich in einer externen Datei angelegt habe in einer HTML Datei ausgeben. Jedoch bekomme ich dies leider nicht so ganz hin :-(

-> Inhalt der Externen Datei

var z= 11; // Gesamt Anzahl der Menuzeilen
zeile= new Array(z);

zeile[0] = "zeile 1"
zeile[1] = "zeile 2"
.....
zeile[10] = "zeile 11"
------------------------------------
den Aufruf realisiere ich in der HTML - Datei mit:
<script type="text/javascript" src="externeDatei.js"></script>
------------------------------------
und die Ausgabe in der HTML Datei mit:
<script language="JavaScript">
document.write(menucode[0]);
document.write(menucode[1]);
.....
document.write(menucode[10]);
//-->
</script>
------------------------------------
Jetzt möchte ich das ganze via Schleife realisieren aber leider wills nicht :-( versucht habe ich es mit:

var i = 0
FOR (i=0;i<=11;i++)
document.write(menucode[i]);

aber bei diesem Versuch bekomme ich nur zeile[0] angezeigt und leider nicht die restlichen Zeilen! Ich denke ich habe etwas vergessen, aber ich komm nicht drauf (Anfänger lässt grüssen)

vielleicht kann mir jemand helfen - Danke ich voraus :-)

Gruß
Robert

  1. Hi,

    FOR (i=0;i<=11;i++)

    also, ich kenne kein "FOR". Die meisten JavaScript-Befehle sind aber auch in Kleinbuchstaben, deswegen kann es das eigentlich gar nicht geben. Schau noch mal nach, ob Du nicht was völlig anderes meinst, z.B. "for".

    document.write(menucode[i]);

    Dass Du nur bis menucode[10] deklariert hast, hier aber auch menucode[11] ausgeben willst, ist Dir bewusst?

    aber bei diesem Versuch bekomme ich nur zeile[0] angezeigt

    Was ist denn zeile[0]?

    und leider nicht die restlichen Zeilen!

    Übrigens möchtest Du Blöcke in geschweifte Klammern kleiden. Wenn's nicht unbedingt nötig ist, so ist es doch IMHO guter Stil, weil übersichtlicher und ggf. leichter wartbar.

    Cheatah

    1. ja ja ja :-) ich weiss ich hab FOR geschrieben (vor lauter lauter Copy und Paste....) aber ich meinte "for" !!!!

      zeile[0] = "irgendein Text"
      zeile[1] = "irgendein anderer Text"
      ....

      und ausgegeben mit
      document.write(zeile[0]);
      document.write(zeile[1]);
      ....

      ich möchte doch nur, dass ich nicht jede Zeile mit einem
      document.write(zeile[n]);
      angeben muss - sondern nur einmal und dieses sollte sich in einer Schleife entsprechend n-mal wiederholen.

      :-)

      (sorry für den verwirrenden text-misch-masch)
      Gruss
      Robert

      1. Hi,

        ja ja ja :-) ich weiss ich hab FOR geschrieben (vor lauter lauter Copy und Paste....)

        ein _unverändertes_ Copy & Paste ist in aller Regel sinnvoll.

        aber ich meinte "for" !!!!

        Gut. Was ist mit den anderen Hinweisen, die ich Dir gegeben habe? Falls die nicht ausreichen, solltest Du mal eine URL nennen, unter der das ganze betrachtbar ist.

        Cheatah

        1. Hi,

          ein _unverändertes_ Copy & Paste ist in aller Regel sinnvoll.

          hey ich hab das ganz einfach aus meiner Versuchsdatei heraus-gesnapt...

          Gut. Was ist mit den anderen Hinweisen, die ich Dir gegeben habe? Falls die nicht ausreichen, solltest Du mal eine URL nennen, unter der das ganze betrachtbar ist.

          es ist noch nicht auf einer URL....

          (ich will doch nur mehrere Zeilen die in einer externen JavaScript Datei mit

          var z= 11; // Gesamt Anzahl der Zeilen
          zeile= new Array(z);

          zeile[0] = "1bla bla"
          zeile[1] = "2bla bla bla"
          ....
          zeile[10] = "ende bla bla"

          definiert sind in einer HTML Datei angezeigt bekommen

          also soll erscheinen:
          1bla bla
          2bla bla bla
          ende bla bla

          dies realisiere ich z.Zt. mit:
          document.write(zeile[0]);
          document.write(zeile[1]);
          ....
          document.write(zeile[10]);

          in der HTML Datei.

          Nun ich möchte doch nur, dass ich mir die ganze tipperei der einzelenen "document.write(zeile[n]);" sparen kann und das ganze mit einer Schleife realisieren wo n hoch gezählt wird (11x da zeilen von 0 bis 10 = 11x!!!)

          :-)
          Robert

          Cheatah

          1. Hi,

            ein _unverändertes_ Copy & Paste ist in aller Regel sinnvoll.

            hey ich hab das ganz einfach aus meiner Versuchsdatei heraus-gesnapt...

            dann sollten die Variablennamen zumindest im Text wiederverwendet werden :-)

            es ist noch nicht auf einer URL....

            Das lässt sich doch ändern, oder?

            also soll erscheinen:
            1bla bla
            2bla bla bla
            ende bla bla

            Ich sehe in Deinem Code übrigens nichts, was für ein Untereinander sorgen könnte. Die 11 Zeilen werden nebeneinander angezeigt werden; sofern Dein Beispiel detailliert genug ist sogar ohne Abstand.

            (11x da zeilen von 0 bis 10 = 11x!!!)

            Ja, aber von "i=0" bis "i<=11" sind es 12 Stück, nicht 11.

            Bist Du denn inzwischen meinen Hinweisen aus </?m=60624&t=10942> nachgegangen?

            Cheatah

            1. Das Problem hat sich gerade gelöst .....

              Danke für deine Mühe :-)
              Gruss
              Robert

      2. ich möchte doch nur, dass ich nicht jede Zeile mit einem
        document.write(zeile[n]);
        angeben muss - sondern nur einmal und dieses sollte sich in einer Schleife entsprechend n-mal wiederholen.

        warum nimmst du nicht "while"???

        var zahl = 0;
        while(zahl < "anzahl der auszugebenden zeilen...")
        {
        document.write(zeile[zahl]);
        zahl++;
        }

        so sollten nacheinander alle zeilen (vorrausgesetzt du gibts in"anzahl der auszugebenden zeilen die richtige zahl an...) mit der schleife ausgegeben werden.

        Fabian

        1. DANKE :-)

          das wars was ich wollte :-)

          Gruss
          Robert

  2. Hallo.

    ich habe - so glaube ich ein "nur" kleines Verständnis Problem:

    Also.

    <script language="JavaScript">

    ^ Wo ist type="text/javascript"?

    var i = 0

    ^^^^^^^^^ i wird in der for-Schleife deklariert, d.h. das hier kannst du dir sparen.

    FOR (i=0;i<=11;i++)

    ^^^ JavaScript ist Case-Sensitive, d.h. es wird zwischen Groß- und Kleinschreibung unterschieden. for ist richtig, nicht aber FOR. Das ist auch das eigentliche Problem.

    Danke ich voraus :-)

    Im Nachhinein ist das in vieler Hinsicht besser.

    Gruß
    Norbert