qq_路过看到熊孩子_03555259
2016-08-07 16:20
var nodes = document.getElementsByTagName("h1"); for(var i=0;i<nodes.length;i++) { document.write(nodes[i].innerHTML); } 为什么用document.write遍历不出数组,只有一个?
被覆盖掉了吧!你看看是不是输出的是最后一个,是的话,应该是后面输出的内容把前面输出的内容的覆盖了。
这段函数是没有问题的,我觉得可能两种情况产生这个原因:
<h1> 在 函数后面,在没加载<h1>的情况下,调用h1出现错误(根据题目,几率较小)
调用了window.onload 来调用函数,虽然调用window.onload是个不错的选择,但是在这里并不合适,因为这里有document.write,如果没有调用window.onload且把h1放在前面,那么在执行document.write时函数会默认写在当前页面(因为页面未加载完)。但是调用了window.onload(页面已加载完),在执行document.write时,函数会自动启用另一页来输出,所以body,head重新刷新,所以在输出一个后就输出不了(因为后面的被刷没了,调用也没有用了)。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题