00:00
好,我们回到上节课内容啊,上节课呢,我们找到了元素数的节点之间的关系,诶可能是父子关系,也可能是兄弟关系,那节点里面呢,还可以插文本,可以是text的,也可以是T,就可以把这个整个一把元素里所有的文本都读出来,但是呢,不是按照这种节点的方式去捋,我想按节点的方式去捋行不行呢?我们呢,把树先搭起来,搭起来之后呢,再输出一遍,这棵树有这么一个东西叫eterrate,哎,什么叫eterrate,什么是eter呢?它就是eterator是个迭代器,那怎么迭代呢?比如说对于这个根节点进行迭代,诶对于这个里面每一个元素怎么样呢?我就输出这个元素本身。那我一看输出什么这样的这几个元素是不是就出来了,哎,这个就是一个迭代器,这个东西就是一个迭代器,所以原来没有这个迭代器的时候呢,就是针对这个根儿,直接把它里边儿的这个标签输出来,那输出的是谁呢?输出的是它的两个直接子元素,这回呢,不但把子元素hide跟body输出来,Hide里的title跟body里的H1也都输出出来。
01:11
这也就是说迭代嘛,一层一层的,不光是直接的子子的子都给套出来了,哎,都是套出来了,那这个迭代器怎么理解呢?它调用之后的结果呢,叫一个element depth first eerator, 也就是说元素深度优先迭代器,那什么是深度优先呢?我们呀,看看这个。这是一棵树,什么是深度优先呢?到了head之后,往深了走,往深了扎,就是抬头,往深了扎,根儿就是深度优先。那我不往深了走就怎么走啊,就广了走,往广了走叫什么呢?广度优先,诶那我能有这么一个广度优先吗?我们试一下。
02:00
把这个做一下这么一个代码,哎。属于这么一个代码。做一个列表,然后呢,先输出本身,再把它相关的东西放进去。再把当前的这个节点挪出这个列表,这样呢,我们就得到什么呀,就广度优先,哎怎么个意思呢?先是Had had之后是什么是body,把这紫一辈儿捋完了,再去捋孙一辈儿,哎一辈儿一辈儿这么捋,深度优先。是什么一条道扎到黑,那广度优先呢?是先捋子一半儿,再捋孙一辈儿,哎,再捋重重孙子是吧,这个子子孙孙都捋到。这两种方式。一个是。往深了走,一个是往广了走啊,要氦的元素迭代还是迭代,但是呢,迭代里面有个参数是害的。他就可以把hide都捋出来,那我说呀,不光是hide,不光是hide还有什么呀,我这还有这H1,那我能不能把hide跟H1都捋出来呢?我们看一下。
03:05
这样呢,Tag跟H1就都捋出来了,那除了tag和T的,我想把TS也捋出来,可以吗?可以啊,我们再看这个代码。捋的是谁啊?哎,捋的是,首先我给他一个太阳是吧,给他一个太阳,然后呢,我再捋had跟h he, 这个时候hi hi里面什么都没有是吧?Text的和TIL都是空的,H1呢是有text的和TIL的。那这棵树具体长成啥样来着?我们再回忆回忆这棵树长成这样。是吧,这样这样,那这回呢,我们不是说哗一下把包带里所有的文本都弄出来了,而是按照什么呀,深度优先搜索,一帧儿一帧的去给它迭代出来。迭代出来,当然了,这个HTML元素里面它还可能有属性,那这个属性怎么挂接到树上呢?我们。
04:02
咱们下次再说OEZ教程。
我来说两句