为什么我的代码没效果

为什么我的代码没效果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>setInterval()</title>
        <style type="text/css">
            div{
                width:300px;
                height:300px;
                border:1px solid #333;
            }
        </style>
    </head>
    <body>
        <input type="button" value="开始">
        <br><br>
        <div></div>
        <script type="text/javascript">
          var a=document.getElementsByTagName("input")[0];
          var b=document.getElementsByTagName("div")[0];
          var c;
          a.onclick=function(){
              setInterval(function(){
                  b.innerHTML("hello");
              },1000)
          }
           //补充代码
        </script>
    </body>
</html>

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好, 

  1. b.innerHTML += 'hello ' 的写法等同于 b.innerHTML =  b.innerHTML + 'hello ' 。这样开启定时器之后,每隔一秒, 都会用div里面已经有的内容加上新的‘hello ’, 实现拼接的效果哦

  2. 直接使用=表示赋值, 那么在执行定时器的过程中,每隔一秒, div的内容都会被重新赋值为‘hello ’,导致无法实现效果图

同学可以编写代码测试一下,结合代码实现的效果帮助自己更好的理解哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

好帮手慕慕子 2019-09-25 15:55:08

同学你好, innerHTML属性使用方式有误,因为innerHTML是一个属性,不是一个方法, 不能使用括号调用, 所以无法实现效果。

建议修改: 通过+=拼接内容, 另,hello字符串后面可以添加一个空格, 让拼接的字符之间有间隔

http://img1.sycdn.imooc.com//climg/5d8b1d51096f624c05110157.jpg

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~

  • 提问者 热心市民程先生 #1
    老师,我不太明白为什么要用+=而不用=
    2019-09-26 15:36:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师