2012-06-06 46 views
1

有人可以幫助我在單個頁面內實現兩個JavaScript計數器嗎?我目前有計數器正在運行,但是當我嘗試爲另一個計數器創建一個新的div時,原始計數器消失並且只顯示一個計數器。這是我的第一篇文章,請原諒任何搞砸的格式。我會非常感謝任何幫助,我很新的JavaScript。謝謝!javascript計數器 - 如何在同一頁面上包含多個計數器?

這裏是我的代碼:

<div id="counter"></div> 
<div id="counter1"></div> 


<script type="text/javascript"> 
var START_DATE = new Date("July 27, 2010 13:30:00"); // put in the starting date here 
var INTERVAL = 1; // in seconds 
var INCREMENT = 2; // increase per tick 
var START_VALUE = 9001; // initial value when it's the start date 
var count = 0; 

window.onload = function() 
{ 
var msInterval = INTERVAL * 1000; 
var now = new Date(); 
count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
document.getElementById('counter').innerHTML = addCommas(count); 
setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = 
addCommas(count);", msInterval); 
} 
</script> 


<script type="text/javascript"> 
var START_DATE = new Date("July 27, 2011 13:30:00"); // put in the starting date here 
var INTERVAL = 1; // in seconds 
var INCREMENT = 2; // increase per tick 
var START_VALUE = 8001; // initial value when it's the start date 
var count = 0; 

window.onload = function() 
{ 
var msInterval = INTERVAL * 1000; 
var now = new Date(); 
count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
document.getElementById('counter1').innerHTML = addCommas(count); 
setInterval("count += INCREMENT; document.getElementById('counter1').innerHTML = 
addCommas(count);", msInterval); 
} 
</script> 


<script type="text/javascript"> 
function addCommas(nStr) 
{ 
nStr += ''; 
x = nStr.split('.'); 
x1 = x[0]; 
x2 = x.length > 1 ? '.' + x[1] : ''; 
var rgx = /(\d+)(\d{3})/; 
while (rgx.test(x1)) { 
    x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
} 
return x1 + x2; 
} 
</script> 
+1

你不能只是再次複製代碼。所有這些變量都有相同的名稱!至少,您需要使用不同的變量名稱來定義第二個計數器。 – sachleen

回答

1

你不能有兩個window.onload腳本,最後一個將覆蓋第一個。

只需重複使用相同的代碼,並簡單地將下一個計數器添加到下一個div。

window.onload = function() 
{ 
    var msInterval = INTERVAL * 1000; 
    var now = new Date(); 
    count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
    document.getElementById('counter').innerHTML = addCommas(count); 
    setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = addCommas(count);", msInterval); 
    document.getElementById('counter1').innerHTML = addCommas(count); 
    setInterval("document.getElementById('counter1').innerHTML = addCommas(count);", msInterval); 
} 

編輯:增量次數只有一次,否則第二個計數器是超前的第一總是

+0

另外,請縮進 –

+0

非常感謝您提供的答案!我能夠讓兩個櫃檯都顯示出來,而且非常棒。還有一個問題 - 兩個計數器是否可以用不同的值遞增?兩個計數器都顯示相同的確切數字,我希望每個計數器都有自己的值和開始日期。再次感謝你的幫助! – Matt

+0

我認爲你所尋找的是一個很好的編程教程,在Javascript方面這些將幫助你,貫穿它們,我知道你會喜歡它 https://developer.mozilla.org/en -US /學習/ javascript –

相關問題