Holzratte: Help: document.getElementById statt innerHTML -aber wie?

<script>
...
function zeit()
{
...
   var Sekunden=5000;
   var Display=Sekunden;
   time.innerHTML = Display;
   setTimeout("zeit()", 1000);
}
</script>

</HEAD>

<BODY onLoad="window.setTimeout('zeit()',1000);">

<div id="time" style="position:absolute;left:50;top:80;"></div>

</BODY>
</HTML>

Es soll jede Sekunde eine andere Ausgabe erfolgen (innerhalb <div id="time" ...>
Bekanntlich funktioniert innerHTML mit Netscape nicht, wie müsste das ganze mit DOM aussehen (NS ab Version 6.0)?

Ich dachte mit getElementById müsste es funktionieren, aber irgendwas mache ich falsch.

mein Ansatz war:
document.getElementById("time") = 'Display';
(anstatt  time.innerHTML = Display; )

... der leider eine Fehlermeldung fabriziert!
Kann mir vielleicht jemand helfen?
  thanks!

  1. Hi,

    <script>

    ERROR: Required attribute "type" missing.

    var Sekunden=5000;
       var Display=Sekunden;
       time.innerHTML = Display;

    Hm? time.innerHTML = 5000;

    setTimeout("zeit()", 1000);

    document.setTimeout()? this.setTimeout()?

    <div id="time" style="position:absolute;left:50;top:80;"></div>

    50 Leberwürste? 80 Parsec? Alle Längenangaben außer "0" benötigen _zwingend_ die Einheit.

    Bekanntlich funktioniert innerHTML mit Netscape nicht,

    Bekanntlich? Also, mir ist es neu. Mozilla hat innerHTML implementiert.

    wie müsste das ganze mit DOM aussehen (NS ab Version 6.0)?

    DOM sieht den Text als eine Node an, die einen nodeValue besitzt, welcher beschreibbar ist. Ansonsten kennt das Dokument eine createTextNode()-Methode.

    document.getElementById("time") = 'Display';

    Hier überschreibst Du eine Referenz zu einer Speicherstelle im DOM-Baum mit dem Text(!) 'Display', was keinen Sinn ergibt. 'Display' ist in aller Regel keine gültige Speicherreferenz.

    ... der leider eine Fehlermeldung fabriziert!

    Bei Fehlermeldungen aller Art bitte *unbedingt* diese auch mit nennen. Wir sind erst ab dem Großen PSI-Ereignis anno 2035 der Hellseherei fähig.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hallo Cheatah

      <HTML>
      <HEAD>

      <script>
      <!--
      now = new Date();
      var timelimit = 668;
      clockStart = now.getTime()+timelimit*1000;

      function zeit()
      {
        var presentTime = new Date();
        var timeNow = presentTime.getTime();
        var timeDiff = clockStart - timeNow;

      var diffSecs = Math.floor(timeDiff/1000); //Wert wird abgerundet auf die nächstniedrigste ganze Zahl

      var Display=diffSecs;

      time.innerHTML = Display;
        setTimeout("zeit()", 50);
      }

      // -->

      </script>

      </HEAD>

      <BODY onLoad="window.setTimeout('zeit()',1000);">

      Anzeige:

      <div id="time" style="position:absolute;left:8pt;top:48pt;"></div>
      <br>
      <br><br><br><br>
      by s.m.
      </BODY>
      </HTML>

      Vielen Dank Cheatah für deine Mühe zu antworten, ich habe mir schon gedacht, dass nicht jeder was mit dem Fetzen code was anfangen kann...
      Daher nun eine fuktionierende Version - zumindest im IE !

      Ich habe Netscape NICHT getestet, gehe aber mit 95%iger Sicherheit davon aus, dass obiges Beispiel NICHT funktioniert (wegen innerHTML)
      Daher wollte ich das ganze mit document.getElementById lösen!

      Da ich ein relativer Neuling bin und nach stundenlangem Versuchen nicht weiter weiss, dachte ich mir, hier im Forum könnte man mir weiterhelfen...

      1. Hallo,

        Ich habe Netscape NICHT getestet, gehe aber mit 95%iger Sicherheit davon aus, dass obiges Beispiel NICHT funktioniert (wegen innerHTML)

        Ab Netscape 6 kann man auch innerHTML verwenden.

        Daher wollte ich das ganze mit document.getElementById lösen!

        document.getElementById("time").firstChild.nodeValue = Display;

        Allerdings sollte der DIV-Container am Anfang etwas enthalten, zumindest ein Leerzeichen (oder  ), um ueberhaupt einen ansprechbaren Textknoten (firstChild) zu haben.

        MfG, Thomas

        1. super, es funktioniert! vielen Dank! :)