-1

(second.innerHTML) -1 は機能しましたが、 (num.innerHTML) -1 は機能しませんでした。

function doDcrements() {
     var hidden = document.getElementById('hidden');
     var second = document.getElementById('second');  // the second is 20.
     var loopTimer = 0;
     if (second.innerHTML != "0") {
         second.innerHTML = (second.innerHTML) -1;
         second.style.color = "blue";
         loopTimer = setTimeout('doDecrements()',1000);
     }else {
         second.style.color = "grey"; 
         hidden.style.display = "block";   
     }
 } 

................................................................... ................................................................... ................................................................... ...............

function doDcrements() {
         var hidden = document.getElementById('hidden');
         var second = document.getElementById('second'); // the second is 20. 
         var loopTimer = 0; 
         var num = document.getElementById('num'); // the number is 20. 
         if (second.innerHTML != "0") {
             second.innerHTML = (num.innerHTML) -1;
             second.style.color = "blue";
             loopTimer = setTimeout('doDecrements()',1000);
         }else {
             second.style.color = "grey";  
             hidden.style.display = "block";   
         }
     } 

forループで作成すると、起こりません:

function doDcrements() {
    var hidden = document.getElementById('hidden');
    var second = document.getElementById('second');
    for (i=20; i<=0; i--) {
           if (second.innerHTML != "0") {
             second.innerHTML = i;
             second.style.color = "blue";
             loopTimer = setTimeout('doDecrements()',1000);
         }else {
             second.style.color = "grey";  
             hidden.style.display = "block";   
         }
    }
}

html コード:

<div id="hidden">started</div>
<p id="second">20</p>
<div onClick="doDcrements();">Download</div> 
4

2 に答える 2

2

forループを見てください:

for (i=20; i<=0; i--) 

i=20およびi<=0。実行されることはありません。

于 2012-12-14T10:24:31.763 に答える
0

(second.innerHTML) -1 that worked but (num.innerHTML) -1 that not working why?

あなたのコードを見なければ、唯一の推測は num.innerHTML が数値に変換可能な文字列を与えていないということです。例:

'20' - 1 = 20

'<input name="xyz" val="20"/>' - 1 = NaN

HTML に id="num" の要素がありません。この場合、num は null になります。

変更点
setTimeout(doDecrements,1000);
for (i=20; i >=0; i--)

于 2012-12-14T10:29:24.577 に答える