HTML DOM 简介
来源:互联网 发布:大数据架构详解 编辑:程序博客网 时间:2024/06/05 17:18
HTML DOM 简介
HTML DOM 定义了访问和操作 HTML 文档的标准。
什么是 DOM?
DOM 是 W3C(万维网联盟)的标准。
DOM (Document Object Model)文档对象模型的缩写。定义了访问 HTML 和 XML 文档的标准:
“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”
W3C DOM 标准被分为 3 个不同的部分:
- 核心 DOM - 针对任何结构化文档的标准模型
- XML DOM - 针对 XML 文档的标准模型
- HTML DOM - 针对 HTML 文档的标准模型
什么是 XML DOM?
XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。
什么是 HTML DOM?
HTML DOM 是:
- HTML 的标准对象模型
- HTML 的标准编程接口
- W3C 标准
HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。
换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。
HTML DOM 节点
在 HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的 HTML。
DOM 节点
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
- 整个文档是一个文档节点
- 每个 HTML 元素是元素节点
- 每个 HTML 属性是属性节点
- HTML 元素内的文本是文本节点
- 注释是注释节点
HTML DOM 节点树
HTML DOM 将 HTML 文档视作树结构。
这种结构被称为节点树:
通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。
节点父、子和同胞
节点树中的节点彼此拥有层级关系。
父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。
- 在节点树中,顶端节点被称为根(root)
- 每个节点都有父节点、除了根(它没有父节点)
- 一个节点可拥有任意数量的子
- 同胞是拥有相同父节点的节点
下面的图片展示了节点树的一部分,以及节点之间的关系:
实例
<html> <head> <title>DOM 教程</title> </head> <body> <h1>DOM 第一课</h1> <p>Hello world!</p> </body></html>
从上面的 HTML 中:
<html>
节点没有父节点;它是根节点<head>
和<body>
的父节点是<html>
节点- 文本节点 “Hello world!” 的父节点是
<p>
节点 <html>
节点拥有两个子节点:<head>
和<body>
<head>
节点拥有一个子节点:<title>
节点<title>
节点也拥有一个子节点:文本节点 “DOM 教程”<h1>
和<p>
节点是同胞节点,同时也是<body>
的子节点<head>
元素是<html>
元素的首个子节点<body>
元素是<html>
元素的最后一个子节点<h1>
元素是<body>
元素的首个子节点<p>
元素是<body>
元素的最后一个子节点
HTML DOM 方法
方法是我们可以在节点(HTML 元素)上执行的动作。
编程接口
可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。
所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
方法是您能够执行的动作(比如添加或修改元素)。
属性是您能够获取或设置的值(比如节点的名称或内容)。
getElementById() 方法
getElementById() 方法返回带有指定 ID 的元素:
例子
var element=document.getElementById("intro");
HTML DOM 对象 - 方法和属性
一些常用的 HTML DOM 方法:
一些常用的 HTML DOM 属性:
现实生活中的对象
某个人是一个对象。
人的方法可能是 eat(), sleep(), work(), play() 等等。
所有人都有这些方法,但会在不同时间执行它们。
一个人的属性包括姓名、身高、体重、年龄、性别等等。
所有人都有这些属性,但它们的值因人而异。
DOM 对象方法
HTML DOM 属性
属性是节点(HTML 元素)的值,您能够获取或设置。
编程接口
可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。
所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
方法是您能够执行的动作(比如添加或修改元素)。
属性是您能够获取或设置的值(比如节点的名称或内容)。
innerHTML 属性
获取元素内容的最简单方法是使用 innerHTML 属性。
innerHTML 属性对于获取或替换 HTML 元素的内容很有用。
举个栗子:
下面的代码获取 id=”intro” 的
元素的 innerHTML:
<html><body><p id="intro">Hello World!</p><script> var txt=document.getElementById("intro").innerHTML; document.write(txt);</script></body></html>
在上面的例子中,getElementById 是一个方法,而 innerHTML 是属性。
innerHTML 属性可用于获取或改变任意 HTML 元素,包括 <html>
和 <body>
。
nodeName 属性
nodeName 属性规定节点的名称。
- nodeName 是只读的
- 元素节点的 nodeName 与标签名相同
- 属性节点的 nodeName 与属性名相同
- 文本节点的 nodeName 始终是 #text
- 文档节点的 nodeName 始终是 #document
注释:nodeName 始终包含 HTML 元素的大写字母标签名。
nodeValue 属性
nodeValue 属性规定节点的值。
- 元素节点的 nodeValue 是 undefined 或 null
- 文本节点的 nodeValue 是文本本身
- 属性节点的 nodeValue 是属性值
获取元素的值
下面的例子会取回 <p id="intro">
标签的文本节点值:
<html><body><p id="intro">Hello World!</p><script type="text/javascript"> x=document.getElementById("intro"); document.write(x.firstChild.nodeValue);</script></body></html>
nodeType 属性
nodeType 属性返回节点的类型。nodeType 是只读的。
比较重要的节点类型有:
HTML DOM 访问
访问 HTML DOM - 查找 HTML 元素。
访问 HTML 元素(节点)
访问 HTML 元素等同于访问节点
您能够以不同的方式来访问 HTML 元素:
通过使用 getElementById() 方法
通过使用 getElementsByTagName() 方法
通过使用 getElementsByClassName() 方法
getElementById() 方法
getElementById() 方法返回带有指定 ID 的元素:
语法:
node.getElementById("id");
下面的例子获取 id=”intro” 的元素:
document.getElementById("intro");
getElementsByTagName() 方法
getElementsByTagName() 返回带有指定标签名的所有元素。
语法:
node.getElementsByTagName("tagname");
下面的例子返回包含文档中所有 <p>
元素的列表:
document.getElementsByTagName("p");
下面的例子返回包含文档中所有 <p>
元素的列表,并且这些 <p>
元素应该是 id=”main” 的元素的后代(子、孙等等):
document.getElementById("main").getElementsByTagName("p");
getElementsByClassName() 方法
如果您希望查找带有相同类名的所有 HTML 元素,请使用这个方法:
document.getElementsByClassName("intro");
上面的例子返回包含 class=”intro” 的所有元素的一个列表:
注释:getElementsByClassName() 在 IE浏览器的 5,6,7,8 中无效。
HTML DOM - 修改
修改 HTML = 改变元素、属性、样式和事件。
修改 HTML 元素
修改 HTML DOM 意味着许多不同的方面:
- 改变 HTML 内容
- 改变 CSS 样式
- 改变 HTML 属性
- 创建新的 HTML 元素
- 删除已有的 HTML 元素
- 改变事件(处理程序)
在接下来的章节,我们会深入学习修改 HTML DOM 的常用方法。
创建 HTML 内容
改变元素内容的最简答的方法是使用 innerHTML 属性。
下面的例子改变一个
元素的 HTML 内容:
<html><body><p id="p1">Hello World!</p><script>document.getElementById("p1").innerHTML="New text!";</script></body></html>
改变 HTML 样式
通过 HTML DOM,您能够访问 HTML 元素的样式对象。
下面的例子改变一个段落的 HTML 样式:
<html><body><p id="p2">Hello world!</p><script>document.getElementById("p2").style.color="blue";</script></body></html>
创建新的 HTML 元素
如需向 HTML DOM 添加新元素,您首先必须创建该元素(元素节点),然后把它追加到已有的元素上。
<div id="d1"> <p id="p1">This is a paragraph.</p> <p id="p2">This is another paragraph.</p></div><script> var para=document.createElement("p"); var node=document.createTextNode("This is new."); para.appendChild(node); var element=document.getElementById("d1"); element.appendChild(para);</script>
- HTML DOM 之 DOM 简介
- HTML DOM 简介
- HTML DOM简介
- HTML DOM简介
- HTML DOM简介
- HTML DOM 简介
- 【JavaScript】HTML Dom简介
- HTML DOM 简介
- JS HTML DOM(简介)
- 5-HTML DOM简介和新特性
- 使用jsoup解析HTML之jsoup和HTML DOM简介
- 使用jsoup解析HTML之jsoup和HTML DOM简介
- 10021---JavaScript--HTML DOM (文档对象模型)简介
- HTML DOM学习笔记(一)_简介
- DOM简介
- DOM简介
- DOM简介
- dom简介
- 2016蓝桥杯 煤球数目 (代码)
- Android Service服务详细解析(上)
- Android开发使用的常见第三方框架汇总
- 搜索-洛谷P1034 矩形覆盖
- 今日头条笔试题
- HTML DOM 简介
- bayes
- gitignore的配置
- 如何取得Spring管理的bean
- iptables 做端口转发
- VC/MFC 使用jsoncpp步骤及注意的问题
- java实现异步转同步
- 头像预览并上传
- 平面棋盘的绘制——Opengl之3D象棋(1)