第十章 DOM
10.1节点层次
html元素通过元素节点表示,特性节点通过特性节点表示,文档类型节点通过文档类型节点访问,这些类型都继承一个基类型。
10.1.1 Node类型
JavaScript中的所有节点类型都承自Node类型,因此所有节点类型都共享着相同的基本属性和方法
nodeType属性表明节点的类型
每个节点都有一个childNodes属性,保存着一个Nodelist类数组对象,可以使用Array.prototype.slice()方法将其转换为数组
parentNode属性指向文档树中的父节点
previousSbling、nextSibling
appendchild()向childNodes列表的末尾添加一个节点
inserBefore()把节点放在childNodes列表中某个特定的位置上,接受两个参数:要插入的节点和作为参照的节点
replaceChild()用于替换节点,接受两个参数:要插入的节点和要替换的节点
removeChild()这个方法接受一个参数即要移除的节点
cloneNode()接受一个布尔值参数,true时复制节点及其整整个子节点树,false时只复制节点本身
normlize()用于处理文档中的文本节点
10.1.2 Doucument类型
nodetype的值为9,nodename的值“#document”, nodevalue的值为null
document对象是window对象的一个属性
doucument的子节点可以是DocumentType、Element、ProcessingINstruction或comment
document.getElementsByTaName()、document.getElementsByName()会返回一盒HTMLCollection
10.1.3Element类型
nodetype的值为1, nodename的值为元素的标签名, nodevalue的值为null
访问元素的标签名,可以使用nodeName属性,也可以使用tagName属性
if(element.tagName.toLowerCase()=="div"){}
Html中标签名始终是以大写输出的,Xml会与源码中一致
操作特性的DOM方法主要有getAttribute()、setAttribute()、removeAttribute(),这三种方法可以针对任何特性使用