有几个疑问需要帮忙解答一下,谢谢
来源:7-6 节点遍历案例
秋之枫华
2019-10-20 21:50:55
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>调用函数并使用循环的方法实现节点的遍历</title> </head> <body> <form> <input type="button" name="button1" id="button1" value="Click Me!"> </form> <script> //定义一个变量s,用以存储遍历出的节点组成的字符串 var s; //定义一个函数 function travel(space,node){ //space用来存储节点之间分隔的字符串,node用来保存遍历的当前节点 if (node.tagName) { //如果当前节点是标签,不是空的,就对字符串进行拼接 s+=space+node.tagName+"<br/>"; } //定义一个变量len,用来存储当前子节点的节点个数 var len=node.childNodes.length; //node.childNodes,当前子节点 for (var i = 0; i < len; i++) { //遍历节点的子节点 travel(space+"|-",node.childNodes[i]); //如果当前的节点含有子节点,则继续调用travel() } } travel("",document); document.write(s); </script> </body> </html>
案例中body标签里明明有一个form标签,里面包含一个按钮,为什么最后网页上没看到这个按钮呢?
我的代码输出结果如下:
为什么会出现undefined呢?
3.
这个函数我还是搞不太明白,能麻烦老师一步一步给讲解一下嘛?
1回答
同学你好,
1、从你第二个问题中的效果图中可以看出按钮显示在网页中了哦:
2、s变量没有定义初始值,为undefined,所以与后面字符串进行拼接的时候,输入的包含undefined。可以开始定义为空字符串:
3、可以参考下图中的解释:
自己测试理解下,祝学习愉快!
欢迎采纳~
相似问题