2014-02-27 30 views
1

我試圖做一個計數器,在10秒內上升到100,然後循環。我的代碼有什麼問題?爲什麼不是這個javascript計數器工作?

window.onload = function() { 
    var showPercent = window.setInterval(function() { 
     if (currentPercent < 100) { 
      currentPercent += 1; 
     } else { 
      currentPercent = 0; 
     } 

     document.getElementById('result').innerHTML = currentPercent; 
    }, 100); 
}; 

http://jsfiddle.net/JBVA2/

+0

第一個提示:看到聲明變量與JavaScript的['var'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var) – Xotic750

+0

什麼不起作用? – Steve

+1

第二技巧:查看['console'](https://developer.mozilla.org/en/docs/Debugging_JavaScript),您將看到'未捕獲的ReferenceError:currentPercent未定義' – Xotic750

回答

4

你不是在你的代碼聲明currentPercent任何地方,你應該增加類似:var currentPercent = 0;showPercent

JSBin Demo

+1

哇,五秒XD +1 –

+0

@NiettheDarkAbsol你很快我只是這次幸運:) – DarkAjax

0
var currentPercent = 0; 

setInterval(function() { 
    if (currentPercent < 100) { 
     currentPercent += 1; 
    } else { 
     currentPercent = 0; 
    } 

    document.getElementById('result').innerHTML = currentPercent; 
}, 100); 
0

在你的小提琴中,你已經擁有它來運行onload。與您的代碼段的問題是,currentPercent需要的setInterval的回調範圍之外的存在:

var currentPercent = 0; 
var showPercent = window.setInterval(function() { 
    if (currentPercent < 100) { 
    ++currentPercent; 
    } else { 
    currentPercent = 0; 
    } 

document.getElementById('result').innerHTML = currentPercent; 
}, 100); 

http://jsfiddle.net/JBVA2/4/

0

我裝在Firefox頁面使用Firebug啓用時出現以下錯誤:

的ReferenceError: currentPercent未定義

您正在比較存儲在變量currentPercent中的值與'100',但該變量尚未定義。使一對夫婦的小變動的代碼使得它的工作就好了:

var currentPercent = 0; 
    window.onload = function() { 
    var showPercent = window.setInterval(function() { 
     if (currentPercent < 100) { 
     currentPercent += 1; 
     } 

     document.getElementById('result').innerHTML = currentPercent; 
    }, 100); 
    }; 
相關問題