我爱编程

认识 HTML DOM

2017-05-27  本文已影响0人  retnuhi

目录

一、HTML DOM 树

1. HTML DOM 树

2. 节点

二、常用 DOM 对象属性与方法

1. 方法

2. 属性

三、DOM操作

四、DOM事件

五、总结


一、HTML DOM 树

1. HTML DOM 树

DOM即是Document Object Model(文档对象模型)的缩写。简单地讲,HTML DOM 定义了访问和操作 HTML 文档的标准方法,DOM 将 HTML 文档表达为树结构。换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。

如下图1.1即为一个HTML文档的DOM结构图示。


图1.1 HTML DOM 树结构

2. 节点

在 HTML DOM 中,所有的事物都是节点。因而,上面图中,这棵树有许多的节点构成,所以也可以叫做节点树。如整个文档 Document 可以看做一个节点;HTML 元素,如 head、body、div 等也可以看做一个节点;同样,HTML 元素内的文本及 HTML 属性也可以看做文本节点与属性节点;甚至注释也可以看做注释节点。
节点树中的节点与节点之间之间拥有层级关系,如下图1.2所示。

图1.2 节点之间的关系

如下面的代码:

<!DOCTYPE html>
  <head>
    <title>我是标题</title>
  </head>
  <body>
    <h1>认识 HTML DOM </h1>
    <p>Hello world!</p>
  </body>
</html>

从上面的 HTML 中可以看出:

二、常用 DOM 对象属性与方法

1.方法

方法就是可以在节点(HTML 元素)上执行的动作。

下面是一些比较常用的 DOM 对象方法:

2.属性

属性是节点(HTML 元素)的值,您能够获取或设置。

下面主要介绍比较常见的几个节点属性:

(1).innerHTML:元素内容

如下面的代码可以获取类名为“intro”的节点的内容值,并将它赋给变量txt:

var txt=document.getElementById("intro").innerHTML;

(2).nodeName:节点名称

(3).nodeValue:节点的值

如下面的代码获取 ID 为 intro 的元素的文本节点的值,并将它写入文档输出流中:

document.write($("#intro").firstChild.nodeValue);

(4).nodeType:节点的类型

各种节点类型与对应的 nodeType 值为:元素:1;属性:2;文本:3;注释:8;文档:9。

(5).parentNode、firstChild、lastChild:节点之间的关系

依次为访问元素的父节点、第一个子节点、最后一个子节点。

(6).length:节点列表长度

如下面的代码,获取标签为 p 的节点组成一个节点列表,将该节点列表中的每一个元素的内容值写到文档输出流中:

x = document.getElementsByTagName("p");

for (i=0;i<x.length;i++) {
  document.write(x[i].innerHTML);
  document.write("<br />");
}

三、DOM操作

通过 DOM 的相关方法,可以修改 HTML,包括改变元素、属性、样式和事件等。

如:

document.getElementById("p1").innerHTML = "New text!";//修改 p1 元素文本节点的内容
document.getElementById("p2").style.color="blue";//修改 p2 元素的样式
var para = document.createElement("p");//接下来三句创建了新的元素如需向 HTML DOM 添加新元素,
var node = document.createTextNode("This is new.");//首先必须创建该元素(元素节点),
para.appendChild(node);//然后把它追加到已有的元素上。

除了 appendChild() 函数向一个父元素后面追加一个子元素之外,添加新元素也可以使用 insertBefore() 函数,直接往一个已存在的元素前面插入一个新元素:

var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para,child);//将新创建的元素 para 插入到已存在的元素 child 前面,但前提是他们用共同的父元素 element

当然,通过相关方法也可以删除一个元素:

var parent=document.getElementById("div1");//要删除一个元素,首先要获取要删除元素的父元素
var child=document.getElementById("p1");
parent.removeChild(child);

最后,若将上面代码的最后一句换为下面这句,则可以实现将 child 元素替换为 para 元素的操作。

parent.replaceChild(para,child);

由此可见,通过 DOM 可以十分方便地实现对 HTML 的各种操作,显得十分强大与灵活。

四、DOM事件

当事件发生时,比如当用户点击一个 HTML 元素时,可以执行相关的 JavaScript,这时,需要把 JavaScript 代码添加到 HTML 事件属性中。

图4.1 DOM 事件触发

下面是一些常见的事件属性:

如下面的代码,点击按钮时,会执行函数 function() 里面的的 JavaScript 代码:

<button onclick = "displayDate()">显示时间</button>//鼠标点击按钮时执行displayDate() 函数

document.getElementById("myBtn").onclick = function(){……};//点击按钮执行函数 function 里面的 JavaScript 代码

五、总结

HTML DOM 可以实现在客户端使用脚本来创建动态网页,以此增强网页的交互性。上面介绍的是一些最常用的 DOM 的使用,具体的可以在实际的实践中,以及不断的查手册增强了解。

上一篇下一篇

猜你喜欢

热点阅读