2016-08-24 56 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'の後に上書きします。 'if(seconds <10)seconds =" 0 "+ seconds;'を試してください。 – nnnnnn

答えて

0

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文は協力しています直ぐに。しかし、右のあなたのif文の後に、あなたはこれがdays + '.&nbsp;&nbsp;&nbsp;'にinnerHTMLプロパティを設定し、あなたの前の宣言を上書きしようとしている

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

を持っています。

最後の行が更新された秒を使用するように、If文で秒を設定してください。

あなたのコードに問題が働いている if、ではありません
関連する問題