2016-08-24 82 views
0

所以基本上我想要做的是讓倒數計時器在達到「10」以下時添加一個「0」。到目前爲止,我已經嘗試了一條if語句(在下面的代碼中),它不起作用。這裏是我的全碼:到達0後向倒數計時器添加「0」

CountDownTimer('01/1/2017 12:0 AM', 'countdown'); 
    CountDownTimer('01/1/2017 12:0 AM', 'newcountdown'); 

    function CountDownTimer(dt, id) 
    { 
     var end = new Date(dt); 
     var _second = 1000; 
     var _minute = _second * 60; 
     var _hour = _minute * 60; 
     var _day = _hour * 24; 
     var timer; 

     function showRemaining() { 
      var now = new Date(); 
      var distance = end - now; 
      if (distance < 0) { 
       clearInterval(timer); 
       document.getElementById(id).innerHTML = 'EXPIRED!'; 
       return; 
      } 
      var days = Math.floor(distance/_day); 
      var hours = Math.floor((distance % _day)/_hour); 
      var minutes = Math.floor((distance % _hour)/_minute); 
      var seconds = Math.floor((distance % _minute)/_second); 

      // THIS IS THE "IF" STATEMENT THAT DID NOT WORK, EVERYTHING ELSE IS WORKING 
      if (seconds < 10) { 
      document.getElementById(id).innerHTML += '0' + seconds + '.'; 
      } 

      document.getElementById(id).innerHTML = days + '.&nbsp;&nbsp;&nbsp;'; 
      document.getElementById(id).innerHTML += hours + '.&nbsp;&nbsp;&nbsp;'; 
      document.getElementById(id).innerHTML += minutes + '.&nbsp;&nbsp;&nbsp;'; 
      document.getElementById(id).innerHTML += seconds + '.'; 
     } 

     timer = setInterval(showRemaining, 1000); 
    } 
+0

你正在覆蓋它下面的if ... –

+0

你直接將值添加到元素'.innerHTML',然後覆蓋'if'後。嘗試'如果(秒<10)秒=「0」+秒;'。 – nnnnnn

回答

0

與您的代碼的問題是不是if,這是工作:

if (seconds < 10) { 
    document.getElementById(id).innerHTML += '0' + seconds + '.'; 
} 

但是,只是在那之後,要覆蓋前值的事實:

document.getElementById(id).innerHTML += seconds + '.'; 

一個簡單解決方案將seconds轉換爲字符串,在您的if中:

if (seconds < 10) { 
    seconds = "0" + seconds; 
} 

這樣,您可以在隨後的innerHTML中使用該字符串。

1

這應做到:

 // THIS IS THE "IF" STATEMENT.... 
     if (seconds < 10) { 
     seconds = "0"+ seconds; 
     } 

比來構建你的輸出使用:

 document.getElementById(id).innerHTML = days + '.&nbsp;&nbsp;&nbsp;'+ 
      hours + '.&nbsp;&nbsp;&nbsp;'+ 
      minutes + '.&nbsp;&nbsp;&nbsp;'+ 
      seconds + '.'; 

此外,在到期應在<=0<0

0

從我看到的,你的If語句正在工作rrectly。但是,你如果語句之後你有

document.getElementById(id).innerHTML = days + '.&nbsp;&nbsp;&nbsp;'; 

這將覆蓋你先前聲明的innerHTML設置爲days + '.&nbsp;&nbsp;&nbsp;'

嘗試在If語句中設置您的秒數,以便最後一行使用更新的秒數。

相關問題