为了账号安全,请及时绑定邮箱和手机立即绑定

我把这句setTimeout("startCount()",1000)这句自执行换成startCount();为啥运行没效果?

<!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;
    setTimeout("startCount()",1000); 
  }
  //setTimeout("startCount()",1000);
 startCount();
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>
把这句setTimeout("startCount()",1000)这句自执行换成startCount();让自执行的startCount()进入不断加1的循环,为什么运行不出来效果?

正在回答

2 回答

把整个JS代码放在window.onload(function(){

放你的JS代码

})这样就可以等整个页面加载完毕后再执行JS代码,就可以避免因为解析先后而导致的捕捉不到的问题,如果代码是捕捉元素问题,那加进去就可以解决

1 回复 有任何疑惑可以回复我~
#1

慕码人3910529 提问者

谢谢window.onload(function(){})!
2015-10-08 回复 有任何疑惑可以回复我~

代码改错了,你新增了两个语法错误。分别是</head>出现两次,<script>无闭合标签。另整个js代码需要在文档加载完毕之后执行,或者写成如下所示

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
<script type="text/javascript">
  var num=0;
  function startCount() {
    document.getElementById('count').value=num;
    num=num+1;
    setTimeout("startCount()",1000); 
  }
  //setTimeout("startCount()",1000);
 startCount();
 </script>
</body>
</html>


0 回复 有任何疑惑可以回复我~
#1

慕码人3910529 提问者

<script>代码放在前面是刚开始解析的时候捕捉不到document.getElementById('count').value吗?等整个html页面解析完了也没有捕捉到?
2015-10-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我把这句setTimeout("startCount()",1000)这句自执行换成startCount();为啥运行没效果?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信