问答详情
源自:9-14 删除节点removeChild()

数组遍历输出问题?

var nodes = document.getElementsByTagName("h1");  for(var i=0;i<nodes.length;i++)  {      document.write(nodes[i].innerHTML);  } 为什么用document.write遍历不出数组,只有一个?

提问者:qq_路过看到熊孩子_03555259 2016-08-07 16:20

个回答

  • 无知的狗3576298
    2016-08-08 17:11:52

    被覆盖掉了吧!你看看是不是输出的是最后一个,是的话,应该是后面输出的内容把前面输出的内容的覆盖了。

  • 水里有条鱼
    2016-08-07 21:32:59

    这段函数是没有问题的,我觉得可能两种情况产生这个原因:

    1. <h1> 在 函数后面,在没加载<h1>的情况下,调用h1出现错误(根据题目,几率较小)

    2. 调用了window.onload 来调用函数,虽然调用window.onload是个不错的选择,但是在这里并不合适,因为这里有document.write,如果没有调用window.onload且把h1放在前面,那么在执行document.write时函数会默认写在当前页面(因为页面未加载完)。但是调用了window.onload(页面已加载完),在执行document.write时,函数会自动启用另一页来输出,所以body,head重新刷新,所以在输出一个后就输出不了(因为后面的被刷没了,调用也没有用了)。