减少javascript中的时间

时间:2012-12-14 10:10:08

标签: javascript

(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> 

2 个答案:

答案 0 :(得分:2)

请查看你的for循环:

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

i = 20且i <= 0。它永远不会运行。

答案 1 :(得分: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--)