JavaScript循环返回undefined

时间:2013-07-17 06:43:53

标签: javascript loops undefined

我正在尝试编写一个函数,它将循环遍历我的“main”div元素的子节点,并将元素标记名称输出到hmtl页面上,每次我尝试编译我的代码时,我最终都会得到undefined 。任何人都可以解释为什么?

可能是因为Console.log返回undefined?但是,如果它不应该我仍然从我的for循环接收某种输出?

function looper() {         //function that will loop through the child nodes of main

    var nodes = document.getElementById('main').childNodes;

    for(i=0; i<nodes.length; i++) {
        console.log(nodes[i]);
    }
}

HTML

 <div id ="main">

 <h1> Jimms web site </h1>

 <nav>
   <a href="index.html">Home page</a> |
   <a href="about.html">About me</a> |
   <a href="contact.html">Contact me</a> 
 </nav> 

     <p> This is a list: </p>
     <div> 
     <ol id = "list">
      <li><a href="mega">hi</a> - </li>
      <li><a href="mario">mario</a> - </li>
      <li><a href="luigi">luigi</a> - </li>
      <li><a href="mash">mash</a> - </li>
      <li><a href="mash">mash</a> - </li></ol>
      </div>
      <p> Thats it </p>



 </div>

  looper();

1 个答案:

答案 0 :(得分:0)

你可能在DOM准备好之前调用javascript。在结束body标签之前调用函数。

<强> Live Demo

function looper() {         //function that will loop through the child nodes of main

    var nodes = document.getElementById('main').childNodes;

    for(i=0; i<nodes.length; i++) {
        document.write(nodes[i]);
    }
}

在body标签之前调用looper以确保DOM元素的可用性。

    <script type="text/javascript" >
        looper();
    </script> 

</body>