DOM的概念:DOM是”Document Object Model”的首字母缩写,即文档对象模型。用来描绘一个层次化的节点树,允许开发人员获取、添加、移除和修改页面 的某一部分元素。

    DOM的基本操作

    1.查询、创建、添加、删除、克隆、替换(方法)

    getElementById()//获取特定 ID 元素的节点 - - 最优

    getElementsByTagName()//获取相同元素的节点列表,返回类数组,使用[ 0 ]来获取

    getElementsByClassName()获取相同类名的节点列表(IE8及以下不支持),返回类数组

    querySelector()//通过选择器获取元素,如果获取多个值返回第一个

    querySelectorAll()//通过选择器获取元素,可以同时获取多个,并将返回值创建类数组

    document.createElement(元素节点)//创建一个元素节点,参数是创建的元素,追加给文档

    父节点.appendChild(子节点)//把子节点插入到父节点的内部最后的位置

    父节点.insertBefore(新的节点,存在节点)//在父节点内,把新的元素节点插入到已经存在的元素节点前面

    父节点.removeChild(子节点)//删除父节点内部的子节点(remove方法:删除元素自身)

    元素节点.cloneNode(true)//克隆(复制)元素节点,如果参数为 true,连同元素节点子元素一起克隆

    父节点.replaceChild(新节点,被替换的节点)//替换子节点

    元素属性的操作

    1.利用方法操作

    getAttribute()//获取特定元素节点属性的值,包括自定义属性和默认属性

    setAttribute()//设置特定元素节点属性的值,包括自定义属性和默认属性

    removeAttribute()//移除特定元素节点属性,包括自定义属性和默认属性

    2.dataset 属性操作

    HTML5中我们可以使用 data- 前缀设置我们需要的自定义属性,来进行一些数据的存放,这里的 data- 前缀就被称为 data 属性,数量不受限制,在控制和渲染数据的时候提供了非常强大的控制;

    3.对象方式操作:点符号和中括号

    读写元素内部的结构内容

    innerHTML:读写元素节点里的内容(包括元素),从节点起始位置到终止位置全部内容,包括内部的元素;

    outerHTML:读写元素节点里的内容(包括元素),除了包含innerHTML全部内容外,还包含元素节点本身;

    innerText:读写某个元素节点的文本内容;

    读写 css 样式的值

    1.获取 css 属性值,仅读取,没有单位

    offsetWidth/offsetHeight:获取盒模型的尺寸

    offsetLeft/offsetTop:获取元素相对可视区的位置,无论是否有定位,都可以获取

    offsetParent:获取元素的定位父级

    2.获取任意的 css 属性值

    getComputedStyle - 标准浏览器 -

    currentStyle - 非标准浏览器 -

    3.设置 CSS样式

    逐个设置

    cssText 设置

    style 设置

    选择器设置

    DOM元素类型 - 高级DOM操作

    节点可以分为元素节点、属性节点和文本节点 . . . ,他们分别用不同的数字代表类型 例如:元素(1) 属性(2) 文本(3) 注释(8)

    每个节点又有三个非常有用的属性,分别为:nodeName、nodeType、nodeValue

    childNodes 获取当前元素节点的所有子节点,这里面包含空白节点,但在IE9以前,IE浏览器都会自动忽略空白节点

    childNodes与children的区别:children不考虑空白节点,而childNodes考虑空白节点,而且他们都是类数组。

    parentNode 获取当前节点的父节点

    了解节点高级选取

    高级选取:第一个子节点,最后一个子节点,上一个兄弟节点,下一个兄弟节点(包含空白和不包含空白等分成8个属性)

    firstChild:第一个子节点(包含空白)

    firstElementChild:第一个子节点(不包含包含空白)

    previousSibling:上一个兄弟节点(包含包含空白节点)

    previousElementSibling:上一个兄弟节点(不包含包含空白)

    lastChild:最后一个子节点(包含空白)

    lastElementChild:最后一个子节点(不包含包含空白)

    nextSibling:下一个兄弟节点(包含包含空白)

    nextElementSibling:下一个兄弟节点(不包含包含空白)