我定義的函數為什么沒有被成功調用
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計時器</title>
<head>
<script type="text/javascript">
? var num=0;
? function startCount() {
? ? document.getElementById('count').value=num;
? ? num=num+1;
? ? if(num>=5){
? ? ? ? alert("計數結束!");
? ? }else{
? ? ? ? setTimeout("startCount()", 1000);
? ? }
? }
? startCount();
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>
2016-09-04
1.我在本機測試的時候并沒有跑起來,這是瀏覽器拋出來的錯誤
?Uncaught TypeError: Cannot set property 'value' of null
2016-09-27
只有回答才能收藏,右上角的已關注沒有什么作用啊。
2016-09-04
window.onload = function () {
? ? ? ? ? ?var num = 0;
? ? ? ? ? ? ? ?function startCount() {
? ? ? ? ? ? ? ? ? ?document.getElementById('count').value = num;
? ? ? ? ? ? ? ? ? ?num = num + 1;
? ? ? ? ? ? ? ? ? ?if (num >= 5) {
? ? ? ? ? ? ? ? ? ? ? ?alert("計數結束!");
? ? ? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ? ? ? ?setTimeout(startCount, 1000);
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}
? ? ? ? ? ?startCount();
}
2016-09-04
首先 因為你的函數需要獲取下面的id=“count”
所以你的整個函數需要用window.onload = function(){} 包裹 ,意思是等文檔加載完畢才執行JavaScript;
其次
計時器的表示應該是setTimeout(startCount, 1000);
帶()表示立即執行, 而按照你的意思是這個是走到else才會執行計時器,所以不需要();
2016-09-04
在你的代碼上改的,
1.把??startCount();換成? setTimeout("startCount()", 1000);
2.只有這樣它才能調用里面的函數,制造一個向上的循環。第二個? setTimeout("startCount()", 1000);在網頁加載出來先被調用一次,然后調用里面那個? setTimeout("startCount()", 1000);
? ? ?望采納!