00:00
好,我们回忆一下上节课内容啊,上节课呢,我们完成了这个子节点的添加,哎,就是往这个根儿上HML上面插这个节点呗,我们回忆一下这个过程啊。首先是什么?首先是根儿,然后俩叉啊,第一个叉上一个title,第二个叉是ULUL底下三个Li,整体来说呢,就得到这么一棵树,对吧,得到这么一棵树,我想便利这棵树,哎,那我就变利。对于。这个ETHTML里面的每一个element,我们要输出这个element。输出的结果呢,就是它有两个子节点,一个是headde,一个是body,那我还想往下走,那body里面我还想找,那就是S秒L里的第一个子元素,它里面有一个u Li, 再往下呢,就是第一个子元素里的第0个子元素,哎,三个Li,这样我们就可以一层一层的把这些东西给弄出来了,但是呢,我突然发现有一个事儿是吧,这个ul之前啊,还应该有一个H1,也就是说这个ul前面应该有个H1,是这么一个结构,但现在他没有这个H1了。
01:11
我想给它加着he怎么办呢?我们如果说啊,就是像之前那样把它啊追加进来,追加进来是谁的子元素呢?是Body的子元素,那body已经有一个ul了,再恨的一个H1,那是不是就。跑到ul的后边去了。那我怎么让它放在前面呢?那么我们就看一下它都有什么,按两下tab。找到有很多的方法,对吧,这是end是不是这是extend。还有什么呀,还有一个音色,如果说列表的话,那么音色它就是一个。插入指令,指令位置的这么一个东西,那我看看这个element tree是不是也是啊,这个确实是insert,插入一个子元素在一个给定的位置。
02:05
那这个这个怎么用呢?具体来说我们试一下啊,我们先回忆一下列表怎么用,说LST等于一个list,这个list是什么呢?是RANGE3,那它是啥呀?它就012,我在第0个位置前面插入一个东西,插入什么呀?插入一个叫before的东西,Before就放在这儿了,那现在我就是想把它插在谁啊,插在。这个包里的第0个元素呗,我们再插在一个H1啊,把这H1放哪儿呢?第0个前面这个时候。H1就是哥哥,Ul呢,就是弟弟了,哎,确实在ul之前,Element tree它和这个list太像了,不管是append的remove insert还是extend,包括这个索引啊,切片啊,这些访问方式都太像,为什么呢?因为最早的时候,这个element tree这个类就是从列表类里面派生出来的。
03:02
那它为什么从列表类里面派生呢?因为列表是一个容器啊,是个什么容器呢?是个有序的容器。有序不但是有序的容器,而且还可以嵌套,说白了就是列表里面可以装列表,那元素节点数也是这么一个容器,什么容器呢?有序的容器,哎,而且也可以看嵌套。第一是有序,第二是可以嵌套,但是呢,它也有一些和列表不一样的东西,比如说啊,我们这儿有一个列表,这列表是什么呢?我们观察一下。0123,我把我让他最后一个元素这个3,呃,把这个东西付给这个0上去,付过去之后就是31233123,如果是一吹会是什么效果呢?我们观察一下啊。H1是哥哥,Ul是弟弟,那这个时候啊,我们之后我要把这个老0H1直接变成老一ul,就是把这个东西付给这个位置,也就是body的第0号元素,就等于body的第一号元素了,我付过去之后呢,这个H1就没了是吧,这个第0个它也是ul,第一个也是ul,都是同一个ul。
04:17
所以它合并同类项就剩一个ul,我就想用弄弄出俩ul来行不行呢?那我们一般的直接赋值是不行了,前拷贝也不行了,是吧?因为它是容器的容器,它可以有很多层啊,这时候我们使用什么呀?使用深拷贝的功能进行一个赋值,这时候赋值不是直接赋值,而是用深拷贝的方式赋值,深拷贝赋值之后呢,再看这个,那它就已经完成了赋值了。而且是相互独立的,那我呢,这棵树我能不能找到他的?这树本身的特点就是找什么呢?找他的儿子是吧?找他的啊,父亲哎,找他的哥哥,找他的弟弟可能吗?我们下次再说,O ez交枪。
我来说两句