问答详情
源自:8-17 编程练习

document.getElementById("second").value=i?

//获取显示秒数的元素,通过定时器来更改秒数。 
   var sec=document.getElementById("second");
   var i=5;
   function countDown(){
       i--;
      sec.innerHTML=i;
     //document.getElementById("second").value=i;
     if(i==1)
    {
         window.location.href="http://www.imooc.com/";
     }
   }
    setInterval(countDown,1000);  
  

为什么用斜体加粗部分的代码写的话(同时把var sec=document.getElementById("second");注释掉),5不会动?

斜体加粗部分的.value和.innerHTML有什么区别?因为8-3 计时器setInterval()中的代码中用了.value,请教大家。

提问者:heyleta 2016-11-21 22:03

个回答

  • stone310
    2016-11-22 13:06:31
    已采纳

     <b id="second">5</b>像这样内容写在标签中间的都用innerHTML来获取内容;

    <input type="text" value="5"/>这种内容写在value属性上的就用value获取内容;

    因此这里document.getElementById("second").innerHTML=i;(value改成innerHTML)就可以正确赋值i;


  • _三少爷_
    2016-11-22 22:32:20

    这样的话,5当然不会动,因为你把上面的(var sec=document.getElementById("second");)这个注释掉的话,就获取不到id位“second”的对象,所以5怎么也不会动

  • heyleta
    2016-11-22 12:48:55

    <!DOCTYPE html>
    <html>
     <head>
      <title>浏览器对象</title> 
      <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>  
     </head>
     <body>
      <!--先编写好网页布局-->
      <h1 >操作成功</h1>
       <p>
         <b id="second">5</b>秒后回到主页&nbsp;<a href="javascript:goBack();">返回</a> 
      </p>

      <script type="text/javascript"> 
     
       //获取显示秒数的元素,通过定时器来更改秒数。 
       var sec=document.getElementById("second");
       var i=5;
       function countDown(){
           i--;
          sec.innerHTML=i;
         //document.getElementById("second").value=i;
         if(i==1)
        {
             window.location.href="http://www.imooc.com/";
         }
       }
        setInterval(countDown,1000);  
      

       //通过window的location和history对象来控制网页的跳转。
       function goBack(){
           window.history.go(-1);
       }
      
     </script>
    </body>
    </html>


  • stone310
    2016-11-22 09:36:45

    代码发完整,你这里id为second是什么元素

  • 略有些霸气
    2016-11-22 08:14:22

    通过id获取标签,并使其值为i