函数递归的问题?????

http://img.mukewang.com/5800849a0001796b09460412.jpgfor 循环已经遍历完了,不需要用递归吧、?

还有为什么标记区域会报错呢?求指点

xx001
浏览 1364回答 2
2回答

stone310

递归是这么写的没有问题,单单用for循环并不能深层遍历,只能遍历第一层,例如:<body> <div id="test">     <ul>         <li>             <p>bbb</p>         </li>     </ul> </div> <script type="text/JavaScript">     function walkTree(node) {         if(node == null) return;       for(var i=0;i<node.childNodes.length;i++){           console.log(node.childNodes[i].nodeName);   //这里用了nodeName,看的更清楚           // walkTree(node.childNodes[i]);  //不用递归,直接for       };     } walkTree(document.getElementById('test')) ; </script> </body>以上只用了for循环,结果只显示<div id="test">它的所有子节点,并没有显示它的子节点的子节点等;再用递归:<body> <div id="test">     <ul>         <li>             <p>bbb</p>         </li>     </ul> </div> <script type="text/JavaScript">     function walkTree(node) {         if(node == null) return;       for(var i=0;i<node.childNodes.length;i++){           console.log(node.childNodes[i].nodeName);             walkTree(node.childNodes[i]);       };     } walkTree(document.getElementById('test')) ; </script> </body>以上就如题主说的递归,运行显示了<div id="test">的所有子节点,子节点的子节点等,这样才算完整显示了树状结构

一瞬儿光

<div id="test">     <div>         <div>             <div>bbb</div>         </div>     </div> </div><script type="text/javascript">     function walkTree(node) {         if(node == null) return;         console.log(node);         console.log(node.childNodes);         walkTree(node.childNodes);     }     walkTree(document.getElementById('test')); </script>你那个方法是错的,循环里面怎么能加递归呢?第一层循环还没结束就已经去递归了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript