1.节点类型
节点类型(IE不识别) | 数值常量(多使用数值来判断节点类型) |
---|---|
Node.ELEMENT_NODE | 1 |
Node.ATTRIBUTE_NODE | 2 |
Node.TEXT_NODE | 3 |
Node.CDATA_SECTION_NODE | 4 |
Node.ENTITY_REFERENCE_NODE | 5 |
Node.ENTITY_NODE | 6 |
Node.PROCESSING_INSTRUCTION_NODE | 7 |
Node.COMMENT_NODE | 8 |
Node.DOCUMENT_NODE | 9 |
Node.DOCUMENT_TYPE_NODE | 10 |
Node.DOCUMENT_FRAGMENT_NODE | 11 |
Node.NOTATION_NODE | 12 |
最常用的是元素和文本节点
根节点是文档节点,HTML是文档节点的子节点
2.常见的节点属性
子节点
someNode.childNodes[]
someNode.childNodes.item()
someNode.firstchild == someNode.childNodes[0]
someNode.lastchild == someNode.childNodes[someNode.childNodes.length-1]
父节点
someNode.parentNode
兄弟节点
someNode.previousSibling
someNode.nextSiblimg
文档节点
someNode.ownerDoucument
3.方法
hasChildNodes() 用于检测是否有子节点
操作节点的方法
var returnedNode = someNode.appendChild(newNode);
//在末尾添加节点,返回新增的节点
var returnedNode = someNode.insertBefore(newNode,referNode);
//在参照节点(第二个参数)之前插入节点,返回新增的节点
var returnedNode = someNode.replaceChild(newNode,oldNode);
//将要替换的节点(第二个参数)删除并由新节点替换,返回旧节点
var returnedNode = someNode.removeChild(oldNode);
//移除并返回旧节点
var clonedNode = someNode.cloneNode();
//为someNode克隆一个副本,接受一个布尔参数,
//为false时浅复制,只复制节点本身,
//为true时深复制,复制节点及其子节点树
//不会复制js属性,例事件处理程序
element.normalize();
//在包含多个文本节点的父元素中调用,会合并文本节点