Robert H.: Variable per DIV übergeben

Hallo,

ich habe folgenden einfachen Javascript-Countdown vorliegen:

<html><head>  
<script type="text/javascript">  
var sekunden = 10;  
var aktiv = setInterval("Count()", 1000);  
function Count()  
{  
sekunden--;  
if(sekunden >= 0)  
{ document.getElementById("Countdown").innerHTML = sekunden; }  
else  
{ aktiv.clearInterval() }  
}  
</script>  
</head><body>  
<div id="Countdown"></div>  
</body></html>  

Ist es irgendwie möglich, die Sekundenzahl als Variable für die Funktion Count() per DIV im HTML-Teil zu übergeben?

Danke im Vorraus.

  1. Hallo Robert,

    Ist es irgendwie möglich, die Sekundenzahl als Variable für die Funktion Count() per DIV im HTML-Teil zu übergeben?

    per DOM kommst Du an jeden Teil eines Dokuments. In Deinem Fall könnte das "Irgendwie" durch var sekunde=document.getElementById("Countdown").firstChild.[link:http://de.selfhtml.org/javascript/objekte/node.htm#data@title=data]; erreicht werden.

    Gruß aus Berlin!
    eddi

    --
    "Ach! ...die größte Freud’
    ist doch die Zufriedenheit!!!"
    Wilhelm Busch und Multiple exclamation marks
    1. Danke Dir für die Antwort, Eddi!

      Mir fehlt als Anfänger leider etwas der Überblick, deshalb meine Nachfrage:
      wie binde ich dann die Variable in die Ausgabe per DIV ein?

      1. Re:

        wie binde ich dann die Variable in die Ausgabe per DIV ein?

        Die Verlinkung war etwas schlecht zu erkennen, aber das verlinkte Beispiel wird Dich auch darüber informieren: data

        Gruß aus Berlin!
        eddi

        --
        "Ach! ...die größte Freud’
        ist doch die Zufriedenheit!!!"
        Wilhelm Busch und Multiple exclamation marks
        1. Sorry, ich hatte die Verlinkung leider tatsächlich nicht beachtet.

          Ich bekomme es aber leider trotzdem immer noch nicht hin.

          Ich würde ja gerne die Variablen per <DIV> (statt body onload() oder FORM) übergeben ...

          wie z.B.

            
          <html><head><script type="text/javascript">  
            
          var sekunden=document.getElementById("Countdown").firstChild.data;  
          var aktiv = setInterval("Count()", 1000);  
            
          function Count()  
          {  
          sekunden--;  
          if(sekunden >= 0)  
          { document.getElementById("Countdown").innerHTML = sekunden; }  
          else  
          { aktiv.clearInterval() }  
          }  
            
          </script>  
          </head><body>  
            
          <div id="Countdown">60</div>  
            
          <div id="Countdown">30</div>  
            
          </body></html>  
          
          

          ... nur dass der/die Counter hier nicht funktioniert ...

          1. Re:

            Die Verlinkung war etwas schlecht zu erkennen, aber das verlinkte Beispiel wird Dich auch darüber informieren: data

            Lies Dir bitte die Erklärung des Beispiels durch!

            <html><head><script type="text/javascript">

            var sekunden=document.getElementById("Countdown").firstChild.data;

            // Zur Ausführungszeit dieses Codes existiert noch gar kein
               // Element mit der ID "Countdown"

            var aktiv = setInterval("Count()", 1000);

            function Count()
            {
            sekunden--;
            if(sekunden >= 0)
            { //document.getElementById("Countdown").innerHTML = sekunden; }

            document.getElementById("Countdown").firstChild.data=sekunden;
            }

            else
            { aktiv.clearInterval() }

            // [link:http://de.selfhtml.org/javascript/objekte/window.htm#clear_interval@title=window.clearInterval()] bitte durchlesen!

            }

            </script>

              
            
            > </head><body>  
            >   
            > <div id="Countdown">60</div>  
            >   
            
              <!-- <div id="Countdown">30</div>  
               Hier solltest Du einen anderen ID-Wert vergeben. -->  
            
            >   
            > </body></html>
            
            ~~~  
            
            >   
            > ... nur dass der/die Counter hier nicht funktioniert ...  
            >   
              
              
            Gruß aus Berlin!  
            eddi  
            
            -- 
            "Ach! ...die größte Freud’  
            ist doch die Zufriedenheit!!!"  
              
            Wilhelm Busch und [Multiple exclamation marks](http://www.google.de/search?q=Multiple+exclamation+marks+are+a+sure+sign+of+a+diseased+mind)
            
            1. Eddi, ich danke Dir!

              Zur Ausführungszeit dieses Codes existiert noch gar kein Element mit der ID "Countdown"

              ... ist logisch, wenn Du es schreibst

              Habe jetzt den Code (für einen einzigen Countdown) so laufend:

                
              <html><head><script type="text/javascript">  
                
              var aktiv = setInterval("Count()", 1000);  
                
              function Count()  
              {  
              sekunden=document.getElementById("Countdown").firstChild.data;  
              sekunden--;  
              if(sekunden >= 0)  
              { document.getElementById("Countdown").firstChild.data = sekunden; }  
              else  
              { window.clearInterval(aktiv) }  
              }  
                
              </script></head><body>  
                
              <div id="Countdown">60</div>  
                
              </body></html>  
              
              

              Ich kann also zwar jetzt den Wert per Variable aus dem DIV übergeben, vom Ergebnis her ist es für mich allerdings faktisch gleich zu meinem Ausgangscode, denn:

              ich hatte mich leider bei meiner Ausgangsfrage nicht genau ausgedrückt, sorry.

              <div id="Countdown">60</div>
                <!-- <div id="Countdown">30</div>
                 Hier solltest Du einen anderen ID-Wert vergeben. -->

              ^^^

              Mein Ziel war/ist es den Countdown aus dem HTML-Teil mehrfach mit jeweils anderer Variable aufzurufen.

              Deshalb meine etwas umständliche Frage bzgl. einer Übergabe per DIV zu einer Funktion.

              Wie kann ich dieses realisieren? Gibt es da eine Möglichkeit?

              1. Wie kann ich dieses realisieren? Gibt es da eine Möglichkeit?

                Du kannst den Code so ändern, dass du die ID per Parameter übergibst und die Funktion dann mit einem entsprechenden Parameter aufrufen.

                1. Das war ja meine ursprüngliche Absicht (Übergabe des Sekundenwertes an die Funktion) ... nur habe ich keine Ahnung wie ich dieses im Zusammenhang mit dem <DIV> realisieren kann. Deshalb meine Bitte um Hilfestellung.

                  1. Das war ja meine ursprüngliche Absicht (Übergabe des Sekundenwertes an die Funktion) ... nur habe ich keine Ahnung wie ich dieses im Zusammenhang mit dem <DIV> realisieren kann. Deshalb meine Bitte um Hilfestellung.

                    Ach so sollte es laufen. :\ (Funktionen übergibt man _Argumente_, und "Variable per DIV übergeben" deutet nun schon wieder auf etwas ganz anderes hin.)

                    Zwischenzeitlich hast Du auch etwas von mehreren Zählern im Quelltext durchblicken lassen, sodass ich Dich bitte, Dein HTML mit einer (möglichst) exakten Beschreibung dessen, was mittels Javascript verändert werden soll, hier zu posten!

                    Gruß aus Berlin!
                    eddi