mehrere unterschiedliche Countdowns gleichzeitig anzeigen
Mein Problem ist das ich auf einer Seite mehrere unterschiedliche Countdowns anzeigen will. Dabei liest Javascript eine Variabel ein. Die Variable gibt die Zeit in Sekunden an. Das Javascript soll dann die Zeit als HH:MM:SS ausgeben. Wobei die Zeit gemäß eines Counters runterlaufen soll. Bei einer Variable klappt das super, jedoch bei mehrern Variabeln nimmt er immer nur die Erste. Ich vermute das Javascript probleme bekommt weil alle Variabeln die Selbe ID haben. Die Möglichkeit die ich kenne ist das ich für jede weiter Variabel eine andere ID vergebe und dann meine Javascriptfunktion immer kopiere.
So hier mal meine HTML-Datei:
Die Javascriptdatei beinhaltet:
Ich hoffe ihr könnt mir helfen.
Mein Problem ist das ich auf einer Seite mehrere unterschiedliche Countdowns anzeigen will. Dabei liest Javascript eine Variabel ein. Die Variable gibt die Zeit in Sekunden an. Das Javascript soll dann die Zeit als HH:MM:SS ausgeben. Wobei die Zeit gemäß eines Counters runterlaufen soll. Bei einer Variable klappt das super, jedoch bei mehrern Variabeln nimmt er immer nur die Erste. Ich vermute das Javascript probleme bekommt weil alle Variabeln die Selbe ID haben. Die Möglichkeit die ich kenne ist das ich für jede weiter Variabel eine andere ID vergebe und dann meine Javascriptfunktion immer kopiere.
So hier mal meine HTML-Datei:
Code:
<html>
<head>
<title></title>
</head>
<body OnLoad="start()">
<script type="text/javascript" src="decision.js"></script>
<div id="zeit">6100</div>
<div id="zeit">6100</div>
<div id="zeit">6100</div>
<div id="zeit">6100</div>
<-- und so weiter die Anzahl ist auf 10 festgelegt muss aber nicht 10 sein
</body>
</html>
Die Javascriptdatei beinhaltet:
Code:
function start()
{
var zeit = parseInt(document.getElementById( 'zeit' ).innerHTML);
zaehler( zeit );
}
function zaehler(zeit)
{
var std = Math.floor( zeit / 3600 );
var min = Math.floor( ( zeit - std * 3600 ) / 60 );
var sek = zeit - std * 3600 - min * 60;
//Stunden
if ( std >= 10 )
{
}
else if( std == 0)
{
std += "0";
}
else
{
std = "0" + std;
}
//Minuten
if ( min >= 10 )
{
}
else if( min == 0)
{
min += "0";
}
else
{
min = "0" + min;
}
//Sekunden
if ( sek >= 10 )
{
}
else if( sek == 0)
{
sek += "0";
}
else
{
sek = "0" + sek;
}
//fertig
if ( min == 0 && std == 0 && sek == 0)
{
document.getElementById( 'zeit' ).innerHTML= "abgeschlossen";
window.setTimeout( "location=self.location", 1000 );
}
else
{
document.getElementById( 'zeit' ).innerHTML = std + ":" + min + ":" + sek;
zeit = zeit - 1;
window.setTimeout( "zaehler( " + zeit + " )", 1000 );
}
}
Ich hoffe ihr könnt mir helfen.
Zuletzt bearbeitet: