Carsten: getElementsByTagName... funktioniert nicht im NN

Hallo,
folgender Code soll alle Layer ausserhalb des sichtbaren Bereichs setzen. Der Code ist (unschwer zu erkennen) für NC7 geschrieben.
Aber:
Die Layer werden nicht versetzt.
Die for-Schleife wird zwar in der richtigen Anzahl der vorh. divs durchlaufen, aber das .left und .top wird nicht ausgeführt.
Ist mein Code richtig oder habe ich einen Denkfähla?

if(navi == 'NN5'){
  for(j=0; j < document.getElementsByTagName("div").length; j++){
    document.getElementsByTagName("div").left = -200;
    document.getElementsByTagName("div").top = -200;
  }
}

Danke für jede Hilfe!

P.S.: Es soll nicht diskutiert werden, ob man besser left=-200 oder visibility ... verwenden sollte.

  1. Hi,

    for(j=0; j < document.getElementsByTagName("div").length; j++){
        document.getElementsByTagName("div").left = -200;

    ^  Du hast hier mehrere Elemente, sprich ein Array...
    Außerdem: willst Du nicht style.left setzen? Dann wäre aber der Wert auch noch falsch, da eine CSS-Längenangabe eine Längeneinheir erfordert...

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    1. Außerdem: willst Du nicht style.left setzen? Dann wäre aber der Wert auch noch falsch, da eine CSS-Längenangabe eine Längeneinheir erfordert...

      Danke, aber getElementsByTagName ... scheint richtig zu sein.
      .style.left funktioniert nicht, auch nicht mit Wertangabe.

      1. Außerdem: willst Du nicht style.left setzen? Dann wäre aber der Wert auch noch falsch, da eine CSS-Längenangabe eine Längeneinheir erfordert...

        Danke, aber getElementsByTagName ... scheint richtig zu sein.
        .style.left funktioniert nicht, auch nicht mit Wertangabe.

        Jetzt raff ich's, wieder mal einer der nicht lesen kann :-(

        Für mich liest sich deine obige Nachtricht so: "Danke für deine Hilfe, aber ich habe recht...."
        warum versuchst du nicht das was Andreas dir schrieb?
        (er schrieb übrigens zwei Sachen)

        Struppi.

        1. Für mich liest sich deine obige Nachtricht so: "Danke für deine Hilfe, aber ich habe recht...."
          warum versuchst du nicht das was Andreas dir schrieb?
          (er schrieb übrigens zwei Sachen)

          Hab ja auch alle beiden Varianten ausprobiert:

          if(navi == 'NN5'){
            for(j=0; j < document.getElementsByTagName("div").length; j++){
              document.getElementsByTagName("div").style.left = -200px;
              document.getElementsByTagName("div").style.top = -200px;
            }                                      ^               ^
          }

          Aber das funktioniert auch nicht! Selbst wenn ich getElementsById("IdDesDivs"). ... benutze, kann ich es nicht zum Laufen bekommen...

          1. Hallo,

            document.getElementsByTagName("div").style.left = -200px;
                document.getElementsByTagName("div").style.top = -200px;

            Bin mir nicht sicher ob es hilft und bin zu faul zum selber test, aber hast du schon mal versucht -200px in anführungzeichen zu sezten?

            gruß,
            Severin

            1. Hallo,

              also bei mir funktioniert document.getElementById("test").style.left ="-200px";

              gruß,
              Severin

              1. Hallo,

                also bei mir funktioniert document.getElementById("test").style.left ="-200px";

                Das ist aber nicht was er macht.

                Er ruft getElementsByTagName auf und wurde jetzt mindestens viermal drauf hingwiesen, dass der Plural bedeutet, das er mehr als ein Elemente (sprich ein Array von elmenten) als Ergebnis erhält. Und diese m uss er auch als Array ansprechen.

                Aber 'px' ist notwenig in neueren Browsern, da hast du recht.

                Struppi.

                1. Hallo,

                  naja, ich hab angenommen, dass er verstanden hat das getElementsByTagName eine array ist ;)
                  Ich hab das gepostet weil er vorher gesagt hat dass des mit getElementById auch nicht lief...

                  gruß,
                  Severin

          2. Hallo,

            document.getElementsByTagName("div").style.left = -200px;

            document.getElementsByTagName("div")[j].style.position = "absolute"; // oder "relative" usw.
            document.getElementsByTagName("div")[j].style.left = "-200px";
                                                ^^^

            Aber das funktioniert auch nicht! Selbst wenn ich getElementsById("IdDesDivs"). ... benutze, kann ich es nicht zum Laufen bekommen...

            Sprich das erhaltene Array richtig an (siehe oben) und setze vorher noch position.

            MfG, Thomas

  2. Hallo,
    folgender Code soll alle Layer ausserhalb des sichtbaren Bereichs setzen. Der Code ist (unschwer zu erkennen) für NC7 geschrieben.
    Aber:
    Die Layer werden nicht versetzt.
    Die for-Schleife wird zwar in der richtigen Anzahl der vorh. divs durchlaufen, aber das .left und .top wird nicht ausgeführt.
    Ist mein Code richtig oder habe ich einen Denkfähla?

    if(navi == 'NN5'){
      for(j=0; j < document.getElementsByTagName("div").length; j++){
        document.getElementsByTagName("div").left = -200;
        document.getElementsByTagName("div").top = -200;
      }
    }

    Danke für jede Hilfe!

    Was sagt die Javascript Konsole?

    Ich helf dir mal auf die Sprünge:

    document.getElementsByTagName("div").left = -200;

    was machst du da?
    document.getElementsByTagName("div")
                       ^
    Elements = plural, du holst alle <div> Elemente eines dokuments und kriegst als Ergebnis was?

    .....

    Struppi.

    1. Was sagt die Javascript Konsole?

      Leider keine Fehlermeldung.

      document.getElementsByTagName("div")
                         ^

      Lt. Selfhtml ist der Befehl richtig. Ich erhalte die Anzahl der vorkommenden DIVs in der Datei, in meinem Fall 5. Es sollen alle 5 divs (es handelt sich um "Dropdown"Menüs) nacheinander aus dem sichtbaren Bereich verschwinden.

      1. Hi!

        document.getElementsByTagName("div")
        Ich erhalte die Anzahl der vorkommenden DIVs in der Datei, in meinem Fall 5.

        Richtig. Und was ist document.getElementsByTagName("div") also? Ein Array! Und nun guckst du bei SelfHTML nach wie man Elemente eines Arrays anspricht.

        Gruß Herbalizer