一、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

    1. <div>
    2. <p>you're great<p>
    3. <!--comment-->
    4. <div>yep</div>
    5. </div>
    1. let nodeObj = document.getElementByTagName('div')[0];
    2. console.log(nodeObj.childNodes) // => [text,element,text,comment,text,element,text]
    3. //注意标签之间可能有空格,这算作是文本节点
    4. //元素起始和结束标签之间算作 元素标签
    5. //注释也是一种标签

    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及以下不兼容