<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事件也是同上的情况
添加回答
举报
0/150
提交
取消
