javascript - 使用document.write输出时会清空当前文档流的问题
本文介绍了javascript - 使用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呢?
解决方案
情况一:直接写
document.write('不会覆盖当前文档流');
此时document.write直接在当前文档流最后写入
情况二:文档加载完毕后写入
window.onload=function(){
document.write('当前文档流会被覆盖');
};
1、onload为文档加载完毕后,此时文档流已关闭
2、再使用document.write则会先执行document.open()创建一个新文档流
3、这个新文档流将会覆盖替换掉之前的文档流
你用onclick事件也是同上的情况
这篇关于javascript - 使用document.write输出时会清空当前文档流的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文