节点概述:网页中的所有内容都是节点(标签,属性,文本,注释等),在DOM中,节点使用node来表示。HTML DOM树中所有的节点均可通过Javascript进行访问,所有HTML元素均可被修改,也可以创建或删除。
1.父级节点:node.parentNode
1)parentNode属性可返回某节点的父节点,但返回的是最近的一个父节点
2)如果指定的节点没有父节点则返回null
2.子节点:parentNode.childNodes(标准) parentNode.childNode(非标准)
1)parentNode.childNodes返回包含指定节点的子节点的集合,该集合为即使更新的集合。
注意:返回值里包含了所有的子节点,包括元素节点,文字节点等。
所以只想要获得里面的元素节点,则需要专门处理,所以我们一般不提倡使用childNodes
childNodes会获得所有的子节点,空格也是文本节点,文本节点的nodeType是3,元素节点的nodeTypde是1,所有可以由此来获得子节点里面的元素节点。
2)parentNode.childNode是只读一个属性,返回所有的子元素的节点,只返回子元素节点,不会返回文本节点等
3)返回第一个和最后一个子元素节点:
第一个:parentNode.firstElementChild
最后一个:parentNode,lastElementChild
但这两种方式有兼容性问题,只有IE9以上才支持
3.兄弟节点getNextElementSibling
4.创建节点document.creatElement('tagName')
document.creatElement('tagName')方法创建由tagName指定的HTML元素。
5.添加节点
node.appendChild(child)方法将一个节点添加到指定父节点列表末尾。
node.insertBefore(child,指定元素)方法将一个节点添加到父节点的指定子节点前面
6.删除节点
node.removeChild()方法从DOM中删除一个节点,返回删除的节点
7.复制节点(克隆节点)
node.cloneNode()方法返回调用该方法的节点的一个副本,也称为克隆节点/拷贝节点
注意:1)如果括号里面的参数为空或者false,则是浅拷贝,即只克隆复制节点本身,不克隆里面的子节点
2)如果括号里面的参数是true,则是深度拷贝,会复制节点本身以及里面所有的子节点