一、document对象
document对象常用方法:
1、获取元素的方法:
(1)getElementsByTagName()
根据标签名来获取元素,返回类数组
(2)getElementById()
根据元素id属性来获取元素,返回dom节点,非类数组,因为html中id属性是唯一的
(3)getElementByClassName()
根据className获取元素,返回类数组
(4)getElementByName
根据元素name属性获取元素
(5)querySelector
根据传入的css选择器获取匹配到的第一个元素
(6)querySelectorAll
根据传入的css选择器获取所有匹配到的元素
tip:querySelector和querySelectorAll这两个方法出现的早,但是在IE8中可用,后来纳入HTML5标准。这两个方法的劣势是性能不及get系的获取方法、获取的dom节点不是实时更新的(dom节点发生变化后,不能及时更新)
2、获取和设置元素属性的方法
(1)getAttribute()
(2)setAttribute()
二、节点、元素、遍历树
1、节点概念
节点(node)原来时网络中的术语,网络是由一些节点集合组成的。DOM中,文档document是由节点构成的集合。
DOM中,节点包含了元素。节点有12个种类,常见的有
(1)元素节点(Element),等于DOM元素 ,节点号1
(2)属性节点(Attribute),节点号2
(3)文本节点(Text),节点号3
(4)注释节点(Comment),节点号8
(5)decument节点,节点号9
(6)documentFragment节点,节点号11
2、节点树
由元素节点形成的树形结构。
(1)元素的父节点
html.parentNode -> document
document.parentNode -> null
(2)子节点们
a.childNodes
<div>
<p>you're great<p>
<!--comment-->
<div>yep</div>
</div>
let nodeObj = document.getElementByTagName('div')[0];
console.log(nodeObj.childNodes) // => [text,element,text,comment,text,element,text]
//注意标签之间可能有空格,这算作是文本节点
//元素起始和结束标签之间算作 元素标签
//注释也是一种标签
b.fistChild和lastChild
(3)兄弟节点sibling
previousSibling和nextSibling
3、元素节点树
(1)获取父级元素 parentElement
html.parentElement是null,不是document,document是一种节点不是元素。
(2)获取子元素
a.node.children
获取子元素个数 childElementCount = children.length
b.firstElementChild和lastElementChild
(3)获取兄弟元素
previousElementSibling和nextElementSibling
除了childElement在IE7及以下不兼容,其他都是IE9及以下不兼容