节点概述:网页中的所有内容都是节点(标签,属性,文本,注释等),在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,则是深度拷贝,会复制节点本身以及里面所有的子节点
本次考核总结:
JS这一部分的知识点很多,在看完一遍之后印象都不太深,在复习的时候又得就像是学新知识一样没有印象,以至于在这次考核中关于节点的问题完全没印象,当时是完全没有想起来都是有哪些方法。所以还是要多打些代码,通多打代码来加深印象,复习学过的知识点,把基础打好。然后就是在算法这一方面太弱,稍微复杂一点的题就会没有思路,不知道从哪下手。所以还是要多练,以后的每一次的算法训练都会按时参加,空余时间也会自己做一些算法题,来提高算法这一方面的能力。