1. DOM概述
●
●
●
●
2.基本的文档对象模型
3. W3C DOM
4.文档对象的产生过程
小知识:文档对象模型具有层次结构,由于JavaScript是基于对象的编程语言,而不是面向对象的编程语言,所以在JavaScript编程中必须考虑类、实例及继承等术语,只需要充分理解不同浏览器之间文档对象的层次结构,就可以利用JavaScript准确定位并操作该对象。
5.DOM对象的节点
节点类型数值 | 节点类型 | 附加说明 | 实例 |
1 | 元素(Element) | HTML标记元素 | <h1></h1> |
2 | 属性(Attribute) | HTML标记元素的属性 | Color=”red” |
3 | 文本(Text) | HTML标记文本段 | Hello World |
4 | 注释(Comment) | HTML注释段 | <!--Comment--> |
5 | 文档(Document) | HTML文档根对象 | <Html> |
6 | 文档类型 | 文档类型 | <!DOCTYPE HTML …> |
小知识:DOM节点数中的节点有元素节点、文本节点和属性节点三种不同的节点类型,
1.
在HTML文档中,各HTML元素如<body>、<p>、<ul>等构成文档结构模型的一个元素对象。在节点树中,每个元素对象又构成一个节点。元素对象可以包含其他的元素。
2.
在节点树中,元素节点构成树的枝条,而文本节点构成树的叶子。文本节点总是包含在元素节点的内部,但是并非所有的元素节点都包含或直接包含文本节点。
3.
HTML文档中的元素都或多或少的有一些属性,既便于准确、具体的描述相应的元素,又便于进行进一步操作。
小知识:并非所有的元素都包含属性,但所有的属性都必须在元素的内部。
6.DOM对象的属性
节点属性 | 说明 |
nodeName | 返回当前节点的名字 |
nodeType | 返回与节点类型对应的值 |
nodue | 返回当前节点的值 |
parentNode | 应用当前节点的父节点,如果存在的话 |
childNodes | 访问当前节点的子节点的集合,如果存在的话 |
firstChild | 对标记的子节点集合中的第一个子节点的引用。如果存在的话 |
lastChild | 对标记的子节点集合中的最后一个子节点的引用,如果存在的话 |
previousSibling | 对同属一个父节点的前一个兄弟节点的应用 |
nextSibling | 对同属一个父节点的下一个兄弟节点的引用 |
Attributes | 返回当前节点属性的列表 |
owenerDocument | 指向包含节点的HTML document对象 |
小知识:firstChild和lastChild指向当前标记的第一个子节点和最后一个子节点,但是大多数情况下使用childNodes集合,使用循环遍历子节点,如果没有子节点。则childNodes为0。
6.DOM的基本操作
1.
DOM模型提供了两种方法用于获取对象,即getElementById()和getElementByTagName()两种方法。
2.对属性的操作
方法 | 说明 |
getAttribute(attribute) | 用于返回目标对象指定属性名称的属性值 |
setAttribute(attribute, value) | 用于修改任意元素指定属性名称的属性值 |
removeAttribute(attribute) | 用于删除任意节点的属性 |
3.对节点的操作
操作类型 | 方法原型 | 附加说明 |
生成节点 | createElement(tagName) | 创建由tagName指定类型的标记 |
createTextNode(string) | 创建包含字符串的文本节点 | |
createAttribute(name) | 创建由name指定的属性 | |
createComment(string) | 创建由string指定的文本注释 | |
插入生成节点 | | 添加子节点newChild到目标节点上 |
insertBefore(newChild,target) | 将新节点newChild添加到目标节点前 | |
复制节点 | cloneNode(bool) | 复制自身, bool指定是否复制子节点 |
删除替换节点 | removeChild(childName) | 删除由childName指定的节点 |
replaceChild(newchild,old) | 新节点替换旧节点 | |
文本节点操作 | insertData(offset, String) | 从offset指定的位置插入string |
appendData(string) | 将string插入到文本节点的末尾处 | |
deleteDate(offset,count) | 从offset起删除count个字符 | |
replaceData(off,count,string) | 从off将count个字符用string替代 | |
splitData(offset) | 从offset起将文本节点分成两个节点 | |
substring(offset,count) | 返回由offset起的count个节点 |