猿问

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

<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呢?

白板的微信
浏览 560回答 1
1回答

牛魔王的故事

情况一:直接写document.write('不会覆盖当前文档流');此时document.write直接在当前文档流最后写入情况二:文档加载完毕后写入&nbsp;&nbsp;window.onload=function(){&nbsp;&nbsp; &nbsp;&nbsp;document.write('当前文档流会被覆盖'); &nbsp;&nbsp;};1、onload为文档加载完毕后,此时文档流已关闭2、再使用document.write则会先执行document.open()创建一个新文档流3、这个新文档流将会覆盖替换掉之前的文档流你用onclick事件也是同上的情况
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答