DOM编程艺术-节点操作之获取节点

2017-06-29  本文已影响0人  Blackdooog

前一篇说了DOM树,主要是了解js和html以及css之间对应的关系,可以通过这样一个结构把两者联系起来。

既然可以联系起来,那就可以通过js来对节点进行一系列操作,从而改变html和css的结构,达到网页交互的目的。

节点的操作可以分为:获取节点;创建节点;修改节点;插入节点;删除节点;

1. 获取节点

在DOM树里面有提到通过父子关系和兄弟关系获取节点,但这种操作可维护性差,因为一旦结构发生变化,元素之间的关系就很可能发生变化,所以节点的获取一定不能基于可能变化的量,而应该是html或者css中存在的唯一的,不会因为关系发生变化而变化的值。

有哪些是唯一值呢,id名,className,tagName这些都是,虽然类名和标签都可以对应多个元素,但是他们本身在html中是不会改变的,而通过父子关系可以获取到他们内部的元素。

基本语法是getElementBy...,也很好理解就是通过...get到某个元素;

1.1 通过id获取节点:getElementById

element=document.getElementById(id), 通过document调用,因为id是document中唯一的。

1.2 通过className获取节点:getElementsByClassName

collection=element.getElementsByClassName;

可以注意到,这里是elements,而不是通过id获取节点的单数形式,这也间接说明了,通过tagName和className是可以获取多个元素的,其结果是一个集合;

1.3 通过标签名获取节点:getElementsByTagName;

collection=element.getElementsByTagName(tagname);

collection是动态的,即后续操作可以改变之前的值;

通过element调用具有某一标签名的集合,可以通过下标获取指定位置的元素,例如:users.getElementsByTagName("li")[2]: 意为获取id为users的div中li标签中的第三个元素,通过类名获取节点也可以这样操作;

users.getElementsByTagName("*"):获取所有后代元素

1.4 通过选择器获取节点:querySelector/All;

list=element.querySelector/All(selector):通过css选择器获取相应节点;

list不是动态的,后续操作不会改变状态;

上一篇下一篇

猜你喜欢

热点阅读