1-26问题

1-26问题

<script type="text/javascript">
            var a = document.getElementById("text"),mn = "";
            setInterval(function(){
                a.innerHTML='★★★今日特卖★★★';
                mn = 1;
                if(mn==1){
                    a.innerHTML = '☆☆☆今日特卖☆☆☆';
                    mn = 0;   
                }else if(mn==0){
                   a.innerHTML='★★★今日特卖★★★';
                   mn = 1;
                    
                }else{}
            },500);
        </script>
    </body>
</html>

老师,为什么我的运行不出来效果,麻烦说详细一点,谢谢

正在回答

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

3回答

给a.innerHTML赋值为实心五角星,这一句也是每次都会执行的,但是后面你不是给mn赋值为1了吗,所以会执行空心的五角星,按你的意思,你是说,先是给赋值为了实心,然后给赋值为1,执行空心,然后就会切换,是这个意思吗?如果你是这么理解的,是不对的, 这是一个定时器循环,每次过500毫秒会执行一次定时器里面的内容,后面mn编程1之后,a的内容就会覆盖前面的这句 a.innerHTML='★★★今日特卖★★★';  它是会有一个切换,但是这个时间非常快,我们肉眼可能会看不到就已经切换完了。

有一种写法,可以让你看到第一次的切换,你把 这一句a.innerHTML='★★★今日特卖★★★';  放到 setInterval(function(){外面,能切换一次。

同学不要走入误区了哦。好好思考一下。加油!

Miss路 2018-07-30 10:14:51

因为,每执行一遍,都是从上往下的,你虽然在下面给mn改变了值,但是你下一次去循环的时候,mn又给赋值为了1呀,所以,你每次执行一次循环的时候,都会被重新赋值为1,因此,总是显示的mn为1时的状态。也就是空心的五角星。

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

  • 我给mn赋值为1之前不是还有一句给a.innerHTML赋值为实心五角星吗,那一句在每次开始执行的时候不会执行到吗
    2018-07-30 14:33:06
Miss路 2018-07-29 12:43:10

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

给mn的初始化要在最外面,在里面的话,mn就一直是1了。如果帮助到了你,欢迎采纳。

  • 为什么放在里面就一直是1了呢??我后面的if里面不是给mn重新赋值了吗
    2018-07-29 19:37:57
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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