dom 编程(html和xml)
html dom与xml dom关系:
什么是 DOM?
DOM 是 W3C(万维网联盟)的标准。
DOM 定义了訪问 HTML 和 XML 文档的标准:
“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它同意程序和脚本动态地訪问和更新文档的内容、结构和样式。”
W3C DOM 标准被分为 3 个不同的部分:
核心 DOM - 针对不论什么结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型
DOM 是 Document Object Model(文档对象模型)的缩写。
什么是 XML DOM?
XML DOM 定义了全部 XML 元素的对象和属性,以及訪问它们的方法。
什么是 HTML DOM?
HTML DOM 是:
HTML 的标准对象模型
HTML 的标准编程接口
W3C 标准
HTML DOM 定义了全部 HTML 元素的对象和属性,以及訪问它们的方法。
换言之。HTML DOM 是关于怎样获取、改动、加入或删除 HTML 元素的标准。
HTML DOM 节点树
HTML DOM 将 HTML 文档视作树结构。这样的结构被称为节点树:
注意:假设是像一些段落格式标签,比方div,p,这些标签想要设置里面的内容则须要内嵌标签。由于这些标签没有文本节点,仅仅能使用innerHTML设置内部标签。
通过 HTML DOM,树中的全部节点均可通过 JavaScript 进行訪问。全部 HTML 元素(节点)均可被改动,也能够创建或删除节点。
DOM 节点
依据 W3C 的 HTML DOM 标准,HTML 文档中的全部内容都是节点:
整个文档是一个文档节点
每一个 HTML 元素是元素节点
HTML 元素内的文本是文本节点
每一个 HTML 属性是属性节点
凝视是凝视节点
节点父、子和同胞
节点树中的节点彼此拥有层级关系。
父(parent)、子(child)和同胞(sibling)等术语用于描写叙述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。
在节点树中。顶端节点被称为根(root)
每一个节点都有父节点、除了根(它没有父节点)
一个节点可拥有随意数量的子
同胞是拥有同样父节点的节点
以下的图片展示了节点树的一部分,以及节点之间的关系:
HTML DOM 方法
方法是我们能够在节点(HTML 元素)上运行的动作。
编程接口
可通过 JavaScript (以及其它编程语言)对 HTML DOM 进行訪问。
全部 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
方法是您可以运行的动作(比方加入或改动元素)。
属性是您可以获取或设置的值(比方节点的名称或内容)。
HTML DOM 对象 - 方法和属性
DOM 属性
innerHTML 属性
获取元素内容的最简单方法是使用 innerHTML 属性。
innerHTML 属性对于获取或替换 HTML 元素的内容非常实用。
nodeName 属性
nodeName 属性规定节点的名称。
nodeName 是仅仅读的
元素节点的 nodeName 与标签名同样
属性节点的 nodeName 与属性名同样
文本节点的 nodeName 始终是 #text
文档节点的 nodeName 始终是 #document
凝视:nodeName 始终包括 HTML 元素的大写字母标签名。
nodeValue 属性
nodeValue 属性规定节点的值。
元素节点的 nodeValue 是 undefined 或 null
文本节点的 nodeValue 是文本本身
属性节点的 nodeValue 是属性值
nodeType 属性
nodeType 属性返回节点的类型。nodeType 是仅仅读的。
比較重要的节点类型有:
| 元素类型 | NodeType | 
|---|---|
| 元素 | 1 | 
| 属性 | 2 | 
| 文本 | 3 | 
| 凝视 | 8 | 
| 文档 | 9 | 
HTML DOM 訪问
getElementById() 方法
getElementById() 方法返回带有指定 ID 的元素:
node.getElementById("id");
getElementsByTagName() 方法
getElementsByTagName() 返回带有指定标签名的全部元素。
node.getElementsByTagName("tagname");
getElementsByClassName() 方法
假设您希望查找带有同样类名的全部 HTML 元素,请使用这种方法:
document.getElementsByClassName("intro");
上面的样例返回包括 class="intro" 的全部元素的一个列表:
凝视:getElementsByClassName() 在 Internet Explorer 5,6,7,8 中无效。
HTML 事件的样例:
当用户点击鼠标时
当网页已载入时
当图片已载入时
当鼠标移动到元素上时
当输入字段被改变时
当 HTML 表单被提交时
当用户触发按键时
onload 和 onunload 事件
当用户进入或离开页面时,会触发 onload 和 onunload 事件。
onload 事件可用于检查訪客的浏览器类型和版本号,以便基于这些信息来载入不同版本号的网页。
onload 和 onunload 事件可用于处理 cookies。
<body onload="checkCookies()">
onchange 事件
onchange 事件经常使用于输入字段的验证。
以下的样例展示了怎样使用 onchange。
当用户改变输入字段的内容时。将调用 upperCase() 函数。
<input type="text" id="fname" onchange="upperCase()">
onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在鼠标指针移动到或离开元素时触发函数。
onmousedown、onmouseup 以及 onclick 事件
onmousedown、onmouseup 以及 onclick 事件是鼠标点击的所有过程。
首先当某个鼠标button被点击时。触发
onmousedown 事件,然后,当鼠标button被松开时,会触发 onmouseup 事件,最后,当鼠标点击完毕时,触发
onclick 事件。
用于处理XML文档的DOM元素属性
| 
 属性名  | 
 描写叙述  | 
| 
 childNodes  | 
 返回当前元素全部子元素的数组  | 
| 
 firstChild  | 
 返回当前元素的第一个下级子元素  | 
| 
 lastChild  | 
 返回当前元素的最后一个子元素  | 
| 
 nextSibling  | 
 返回紧跟在当前元素后面的元素  | 
| 
 noedValue  | 
 指定表示元素值的读/写属性  | 
| 
 parentNode  | 
 返回元素的父节点  | 
| 
 previousSibling  | 
 返回紧邻当前元素之前的元素  | 
用于遍历XML文档的DOM元素方法
| 
 属性名  | 
 描写叙述  | 
| 
 getElementById(id) (document)  | 
 获取有指定唯一ID属性值文档中的元素  | 
| 
 getElementsByTagName(name)  | 
 返回当前元素中指定标记名的子元素的数组  | 
| 
 hasChildNodes()  | 
 返回一个布尔值,指示元素是否有子元素  | 
| 
 getAttribute(name)  | 
 返回元素的属性值,属性由name指定  | 
动态创建内容时所用的W3C DOM属性和方法
| 
 属性/方法  | 
 描写叙述  | 
| 
 document.createElement(tagName)  | 
 文档对象上的createElement方法能够创建由tagName指定的元素,假设以串div作为方法參数,就会生成一个div元素  | 
| 
 document.createTextNode(text)  | 
 文档对象的createTextNode方法会创建一个包括静态文本的节点  | 
| 
 <element>.appendChild(childNode)  | 
 appendChild方法将指定的节点添加到当前元素的子节点列表(作为一个新的子节点)。比如。能够添加一个option元素。作为select元素的子节点  | 
| 
 <element>.getAttriture(name)  | 
 这些方法分别获得和设置元素中name属性的值  | 
| 
 <element>..setAttritube(name,value)  | 
|
| 
 <element>.insertBefore(newNode,targetNode)  | 
 这种方法将节点newNode作为当前元素的子节点插到targetNode元素前面  | 
| 
 <element>.removeAttribute(name)  | 
 这种方法从元素中删除属性name  | 
| 
 <element>.removeChild(childNode)  | 
 这种方法从元素中删除子元素childNode  | 
| 
 <element>.replaceChild(newNode,oldNode)  | 
 这种方法将节点oldNode替换为节点newNode  | 
| 
 <element>.hasChildnodes()  | 
 这种方法返回一个布尔值。指定元素是否有子元素  | 
dom中全部的对象的属性及方法请參考w3cschool
Browser 对象參考手冊
点击下面链接。能够获得下面对象的很多其它信息。包括它们的集合、属性、方法以及事件。
当中包括大量实例!
| 对象 | 描写叙述 | 
|---|---|
| Window | JavaScript 层级中的顶层对象,表示浏览器窗体。 | 
| Navigator | 包括client浏览器的信息。 | 
| Screen | 包括client显示屏的信息。 | 
| History | 包括了浏览器窗体訪问过的 URL。 | 
| Location | 包括了当前 URL 的信息。 | 
HTML DOM 对象參考手冊
请点击以下的链接,学习很多其它有关对象及其集合、属性、方法和事件的知识。
当中包括大量实例!
| 对象 | 描写叙述 | 
|---|---|
| Document | 代表整个 HTML 文档。可被用来訪问页面中的全部元素 | 
| Anchor | 代表 <a> 元素 | 
| Area | 代表图像映射中的 <area> 元素 | 
| Base | 代表 <base> 元素 | 
| Body | 代表 <body> 元素 | 
| Button | 代表 <button> 元素 | 
| Event | 代表某个事件的状态 | 
| Form | 代表 <form> 元素 | 
| Frame | 代表 <frame> 元素 | 
| Frameset | 代表 <frameset> 元素 | 
| Iframe | 代表 <iframe> 元素 | 
| Image | 代表 <img> 元素 | 
| Input button | 代表 HTML 表单中的一个button | 
| Input checkbox | 代表 HTML 表单中的复选框 | 
| Input file | 代表 HTML 表单中的文件上传 | 
| Input hidden | 代表 HTML 表单中的隐藏域 | 
| Input password | 代表 HTML 表单中的password域 | 
| Input radio | 代表 HTML 表单中的单选button | 
| Input reset | 代表 HTML 表单中的重置button | 
| Input submit | 代表 HTML 表单中的确认button | 
| Input text | 代表 HTML 表单中的文本输入域(文本框) | 
| Link | 代表 <link> 元素 | 
| Meta | 代表 <meta> 元素 | 
| Object | 代表 <Object> 元素 | 
| Option | 代表 <option> 元素 | 
| Select | 代表 HTML 表单中的选择列表 | 
| Style | 代表单独的样式声明 | 
| Table | 代表 <table> 元素 | 
| TableData | 代表 <td> 元素 | 
| TableRow | 代表 <tr> 元素 | 
| Textarea | 代表 <textarea> 元素 | 
dom 编程(html和xml)的更多相关文章
- 读书笔记:JavaScript DOM 编程艺术(第二版)
		
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
 - Dom编程
		
Dom编程 Dom是一种用于HTML和XML文档的编程接口,是HTML页面的模型,将每个标签都做为一个对象,JavaScript通过调用DOM中的属性.方法就可以对网页中的文本框.层等元素进行编程控制 ...
 - 高性能JavaScript DOM编程
		
我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间用 ...
 - 160826、浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘
		
一.浏览器渲染页过程描述 1.浏览器解析html源码,然后创建一个DOM树. 在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点). DO ...
 - javaScript DOM编程
		
1.DOM概述 1.1. 什么是DOM? DOM= Document Object Model,文档对象模型, DOM 是 W3C(万维网联盟)的标准.DOM 定义了访问 HTM ...
 - JS之DOM编程
		
为什么学dom编程? 通过dom编程,我们可以写出各种网页游戏 dom编程也是我们学习ajax技术的基础,所以我们必需掌握好dom编程. dom编程简介 DOM=Document Object Mo ...
 - dom4j解析器   基于dom4j的xpath技术 简单工厂设计模式  分层结构设计思想  SAX解析器 DOM编程
		
*1 dom4j解析器 1)CRUD的含义:CreateReadUpdateDelete增删查改 2)XML解析器有二类,分别是DOM和SAX(simple Api for xml). ...
 - 浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘。
		
一.浏览器渲染页过程描述 1.浏览器解析html源码,然后创建一个DOM树. 在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点). DOM树 ...
 - dom 规划(html和xml)
		
html dom与xml dom关联: 什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了訪问 HTML 和 XML 文档的标准: "W3C 文档对象模型 (DOM) ...
 
随机推荐
- 解决ORA-02395:超出I/O使用的调用限制问题
			
ORACLE的PROFILE文件是限制数据库用户使用的资源的一种手段.如:控制session或sql能使用的CPU.控制用户的password管理策略等. 数据库创建后,系统则存在名为DEFAULT的 ...
 - ZOJ 2913 Bus Pass  (近期的最远BFS HDU2377)
			
题意 在全部城市中找一个中心满足这个中心到全部公交网站距离的最大值最小 输出最小距离和满足最小距离编号最小的中心 最基础的BFS 对每一个公交网站BFS dis[i]表示编号为i的点到全部公交网 ...
 - html5开发手机打电话发短信功能,html5的高级开发,html5开发大全,html手机电话短信功能具体解释
			
在非常多的手机站点上,有打电话和发短信的功能,对于这些功能是怎样实现的呢.事实上不难,今天我们就用html5来实现他们. 简单的让你大开眼界.HTML5 非常easy写,但创建网页时,您常常须要反复做 ...
 - 为data盘加入磁盘(asm external)
			
1.创建盘,并两个节点皆能够訪问. 2.检查集群状态 [grid@rac1 ~]$ crsctl status res -t ------------------------------------- ...
 - CGContext含义
			
代码 含义 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文 CGContextMoveToPoint 开始画线 CGContex ...
 - 【POJ 3904】 Sky Code
			
[题目链接] http://poj.org/problem?id=3904 [算法] 问题可以转化为求总的四元组个数 - 公约数不为1的四元组个数 总的四元组个数为C(n,4),公约数不为1的四元组个 ...
 - Git 学习笔记(二)
			
看完了 Git 的介绍后,也是时候动手尝试一下了,不过我们需要先安装好它.它有许多种安装方式,主要分两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包,这里就不做赘述了. 配置 ...
 - Maven 学习笔记(一)
			
定义 Maven 是基于项目对象模型(POM)的软件项目管理工具,它采用纯 java 编写,用于管理项目的构建,最早在 Jakata Turbine 项目中开始被使用.它包含了一个项目对象模型(Pro ...
 - SQL Server 内存使用情况
			
• 查看设置的最大与最小内存: exec sp_configure 'max server memory (MB)' exec sp_configure 'min server memory (MB) ...
 - Java环境安装配置好了却不能运行xxx.jar程序?
			
1,检查Java环境是否已安装或配置成功. WIN+R → cmd → java -version,查看是否可以读取到Java版本信息,如果读取不到,说明Java环境安装或配置有问题,重新装一下. 2 ...