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

使用document.write输出时会清空当前文档流的问题

使用document.write输出时会清空当前文档流的问题

白板的微信 2018-11-13 13:15:06
<body>    <ul>        <li>5</li>        <li>4</li>    </ul>    <button type="button" onclick="ff()">ff</button>    <script type="text/javascript">        var li = document.getElementsByTagName('li');        function ff(){            for(var i = 0; i < li.length;i++){                document.write(li[i].innerHTML);            }        }        </script></body>最后页面上只会输出5,我设置断点看了以后发现,经过第一次循环,li的长度会变成0,所以就退出循环了,有人说使用document.write输出时会清空当前文档流,但是清空的话又怎么会输出5呢?
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

情况一:直接写

document.write('不会覆盖当前文档流');

此时document.write直接在当前文档流最后写入

情况二:文档加载完毕后写入

  window.onload=function(){  
  document.write('当前文档流会被覆盖');
  };

1、onload为文档加载完毕后,此时文档流已关闭
2、再使用document.write则会先执行document.open()创建一个新文档流
3、这个新文档流将会覆盖替换掉之前的文档流

你用onclick事件也是同上的情况


查看完整回答
反对 回复 2018-12-05
  • 1 回答
  • 0 关注
  • 559 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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