关于document的子节点列表的问题?

来源:7-7 编程练习

alluremyy

2019-03-25 01:18:20

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script src="domReady.js"></script>

<script>

   myReady(function(){

   var n=document.childNodes;

   console.log(n);

   });

   </script>

</head>

<body>

</body>

</html>

我测试了一下document的子节点列表如下

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

这里有两个html节点,那么在视频中

   var len=node.childNodes.length;

       //    遍历节点的子节点

       for (var i = 0; i < len; i++) {

           // 递归调用travel函数

           travel(space+"|-",node.childNodes[i]);

       }

当首次调用travel函数传入document的时候这里的len应该是2啊,那么第一次for循环当i=0时打印了一遍所有的标签,i++,然后i=1时仍然得打印一边所有的标签啊。我的感觉是这样的,为什么最后效果是只打印一遍,很是不理解,麻烦老师解答

写回答

2回答

好帮手慕夭夭

2019-03-25

你好同学, 没错哦 .你可以把上传的代码粘贴到本地,在谷歌浏览器中再测试一下 ,如下:

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

祝学习愉快 ,望采纳 .


0

好帮手慕夭夭

2019-03-25

你好同学 ,不太清楚你说的输出所有标签是什么意思 ?  代码都是顺序执行的 , 这里你可以配合代码 , 以及老师的注释模拟执行代码 , 这样会好理解一些 .

 document.write(s);是在函数结束后输出所有内容 ,而s在函数中 ,只有这个节点存在标签名 ,才会对s进行赋值 , 

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

如果还有不理解的 ,你可以把具体的点描述一下 .以便老师更加准确高效的为你解答 .

祝学习愉快 ,望采纳 .

0
hlluremyy
h 您的意思是document的两个子节点,第一个是<!doctype html>第二个才是<html>?我就是这里没搞明白,我还想着为啥他的子元素是俩html,所以才会觉得要把页面中的所有标签打印两遍
h019-03-25
共1条回复

0 学习 · 40143 问题

查看课程