关于用setTimeout和value属性改变秒值

来源:8-17 编程练习

jinleli

2016-05-24 15:39

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <meta charset="utf-8"/>   
 </head>
 <body>
  <!--先编写好网页布局-->
  <h1>操作成功</h1>
  <p><b id=ms>5</b>秒后回到主页 <a href="javascript:goBack();">返回</a></p>
  
 
  <script type="text/javascript"> 
   var ms1= document.getElementById("ms");
      var i=5;
  function tz(){
    	i--;
		ms1.value= i;
		if(i==1){
			window.location.href =  "http://www.imooc.com/"; }
      setTimeout(tz,1000);
	}
  setTimeout(tz,1000);
    
    function goBack(){ 
    window.history.go(-1);
  }  
    
   //获取显示秒数的元素,通过定时器来更改秒数。

   //通过window的location和history对象来控制网页的跳转。
   
 </script> 
</body>
</html>

以上代码将ms1.value= i;改为ms1.innerHTML=i就是正常的,之前用value时到了5秒会跳转但是页面一直显示5秒没有动态改变。另外在下面的代码中又是正确的。这到底是什么原因造成的

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <meta charset="utf-8"/>   
 </head>
 <body>
  <!--先编写好网页布局-->
  <h1>操作成功</h1>
  <p><b id=ms>5</b>秒后回到主页 <a href="javascript:goBack();">返回</a></p>
  <script type="text/javascript"> 
   var ms1= document.getElementById("ms");
      var i=5;
   setInterval(function(){
    	i--;
		ms1.value = i;
		if(i==1){
			window.location.href =  "http://www.imooc.com/"; }
	},1000);
    
    function goBack(){ 
    window.history.go(-1);
  }  
    
   //获取显示秒数的元素,通过定时器来更改秒数。

   //通过window的location和history对象来控制网页的跳转。
   
 </script> 
</body>
</html>



写回答 关注

3回答

  • kuban
    2016-05-24 17:13:53
    已采纳

    2种代码用value都不变数字的,b标签没有value属性,用innerText或者innerHTML都行,你再试试?

    jinlel...

    应该是我昨天运行看错文件了

    2016-05-25 12:19:16

    共 1 条回复 >

  • wiful
    2016-05-24 17:32:18

    一般inpu可输入t类型的可设置value值,像这种行内标签b一般适用于内容显示,通过innerHTML给它赋值。我的个人理解。

  • 稻鹰
    2016-05-24 17:22:51

    id=ms ,这个地方的要写成id="ms"  ,属性值需要用加引号,你再试试

    jinlel...

    这确实是我写错了,不过和我这个问题没有关系,谢谢回答

    2016-05-25 12:15:16

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题