[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
一、DOM基础
1.节点(node)层次
document--最顶层的节点,所有的其他节点都是附属于它的。
documentType--DTD引用(使用语法)的对象表现形式,它不能包含子节点。
documentFragment--可以像document一样来保存其他节点。
Element--表示起始标签和结束标签之间的内容,例如
Attr--代表一对特性名和特性值。这个节点类型不能包含子节点。
Text--代表XML文档中的在起始标签和结束标签之间,或者CDataSection内包含的普通文本。这个节点类型不能包含子节点。
CDataSection--的对象表现形式。这个节点类型仅能包含文本节点Text作为子节点。
Entity--表示在DTD中的一个实体定义,例如。这个节点类型不能包含子节点。
EntityReference--代表一个实体引用,例如"。这个节点类型不能包含子节点。
ProcessingInstruction--代表一个PI。这个节点类型不能包含子节点。
Comment--代表XML注释。这个节点不能包含子节点。
Notation--代表在DTD中定义的记号。这个很少用到。
Node接口定义了所有节点类型都包含的特性和方法。
| 特性/方法 | 类型/返回类型 | 说明 |
| nodeName | String | 节点的名字;根据节点的类型而定义 |
| nodevalue | String | 节点的值;根据节点的类型而定义 |
| nodeType | Number | 节点的类型常量值之一 |
| ownerdocument | document | 指向这个节点所属的文档 |
| firstChild | Node | 指向在childNodes列表中的第一个节点 |
| lastChild | Node | 指向在childNodes列表中的最后一个节点 |
| childNodes | NodeList | 所有子节点的列表 |
| previousSibling | Node | 指向前一个兄弟节点;如果这个节点就是第一个兄弟节点,那么该值为null |
| nextSibling | Node | 指向后一个兄弟节点;如果这个节点就是最后一个兄弟节点,那么该值为null |
| hasChildNodes() | Boolean | 当childNodes包含一个或多个节点时,返回真 |
| attributes | NamedNodeMap | 包含了代表一个元素的特性的Attr对象;仅用于Element节点 |
| appendChild(node) | Node | 将node添加到childNodes的末尾 |
| removeChild(node) | Node | 从childNodes中删除node |
| replaceChild(newnode,oldnode) | Node | 将childNodes中的oldnode替换成newnode |
| insertBefore(newnode,refnode) | Node | 在childNodes中的refnode之前插入newnodd |
除节点外,DOM还定义了一些助手对象,它们可以和节点一起使用,但不是DOM文档必有的部分。
NodeList--节点数组,按照数值进行索引;用来表示和一个元素的子节点。
NamedNodeMap--同时使用数值和名字进行索引的节点表;用于表示元素特性。
2.访问相关的节点
下面的几节中考虑下面的HTML页面
复制代码 代码如下:
Hello World!
Isn't this exciting?
You're learning to use the DOM!
要访问
var oHtml = document.documentElement;
现在变量oHtml包含一个表示



