本文收集整理自http://w3schools.com,简单的介绍一下HTML DOM模型。
HTML DOM模型可以用下面的html tree进行概括:

上图中的每一个方框都代表一个节点(Node)。如果你想动态的更改页面内容,只需要更改相应的节点即可。如果你打开任何一个网站,查看其源代码,会发现这个模型无处不在。
下面是节点之间的关系图

<html>节点是一个页面的根节点,当然你可以把上图中的节点替换成其它节点,也可以找到类似的关系。通过firstChild、lastChild、nextsibling、previousSibling、childNodes、parentNode等节点属性,可以遍历整个页面文档。
常用的节点属性和方法
我们假设x是一个一个节点对象,下面是一些常用的属性:
- x.innerHTML —— 可以获取或更改x的文本内容
- x.nodeName —— x的节点名称,只读,不可改写。如果x是HTML元素,返回的就是元素名(如p,h1,a等),如果x是HTML标签的属性,返回的就是属性名(如href、title等)。
- x.nodeValue —— 节点值。如果x是HTML元素,nodeValue无意义。如果果x是HTML标签的属性,则表示属性值。如果x是文本节点(Text),则表示文本的内容。
- x.parentNode —— x的父节点
- x.childNodes —— x 的子节点集合
- x.attributes —— x的属性集合
另外还有一个nodeType属性,表示节点类型:
| Element type | NodeType |
|---|---|
| Element | 1 |
| Attribute | 2 |
| Text | 3 |
| Comment | 8 |
| Document | 9 |
下面是一些常用的方法:
- x.getElementById(id) – 根据元素id获取节点对象
- x.getElementsByTagName(name) – 根据标签名获取所有元素的集合
- x.appendChild(node) – 给x插入一个子节点
- x.removeChild(node) – 从x中删除一个子节点
最后再了解一下HTML DOM中的事件
页面中的每一个元素都有触发脚本语句或函数的事件。比如我们点击页面中的某个按钮的时候,就触发了相应的”点击”事件,如果我们为这个”click”事件注册了脚本语句或函数的话,这个时候就会执行注册的脚本语句或函数。
以下列举几个事件触发的例子:
- 当鼠标点击的时候,触发”onclick”
- 当加载完页面或图片的时候,触发”onload”
- 当鼠标经过指定的区域的时候,触发”onmouseover”
- 当元素获得焦点的时候,触发”onfocus”
- 当按下键盘的时候,触发”onkeydown”,”onkeypress”,”onkeyup”
还没有评论,快抢沙发