有几个疑问需要帮忙解答一下,谢谢

来源: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>
  1. 案例中body标签里明明有一个form标签,里面包含一个按钮,为什么最后网页上没看到这个按钮呢?

  2. 我的代码输出结果如下:

    http://img.mukewang.com/climg/5dac65a309f1e6f603350263.jpg

为什么会出现undefined呢?

3.http://img.mukewang.com/climg/5dac661e09548ec209030560.jpg

这个函数我还是搞不太明白,能麻烦老师一步一步给讲解一下嘛?

写回答

1回答

好帮手慕星星

2019-10-21

同学你好,

1、从你第二个问题中的效果图中可以看出按钮显示在网页中了哦:

http://img.mukewang.com/climg/5dad1dc709e753e703350231.jpg

2、s变量没有定义初始值,为undefined,所以与后面字符串进行拼接的时候,输入的包含undefined。可以开始定义为空字符串:

http://img.mukewang.com/climg/5dad1e1f09e9dd6a01890039.jpg

3、可以参考下图中的解释:

http://img.mukewang.com/climg/5dad1e7b0917785f11340734.jpg

自己测试理解下,祝学习愉快!

欢迎采纳~

0

0 学习 · 40143 问题

查看课程