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)的更多相关文章

  1. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  2. Dom编程

    Dom编程 Dom是一种用于HTML和XML文档的编程接口,是HTML页面的模型,将每个标签都做为一个对象,JavaScript通过调用DOM中的属性.方法就可以对网页中的文本框.层等元素进行编程控制 ...

  3. 高性能JavaScript DOM编程

    我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间用 ...

  4. 160826、浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘

    一.浏览器渲染页过程描述   1.浏览器解析html源码,然后创建一个DOM树. 在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点). DO ...

  5. javaScript DOM编程

    1.DOM概述 1.1.        什么是DOM?     DOM= Document Object Model,文档对象模型, DOM 是 W3C(万维网联盟)的标准.DOM 定义了访问 HTM ...

  6. JS之DOM编程

    为什么学dom编程? 通过dom编程,我们可以写出各种网页游戏 dom编程也是我们学习ajax技术的基础,所以我们必需掌握好dom编程.  dom编程简介 DOM=Document Object Mo ...

  7. dom4j解析器 基于dom4j的xpath技术 简单工厂设计模式 分层结构设计思想 SAX解析器 DOM编程

    *1 dom4j解析器   1)CRUD的含义:CreateReadUpdateDelete增删查改   2)XML解析器有二类,分别是DOM和SAX(simple Api for xml).     ...

  8. 浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘。

    一.浏览器渲染页过程描述 1.浏览器解析html源码,然后创建一个DOM树. 在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点). DOM树 ...

  9. dom 规划(html和xml)

    html dom与xml dom关联: 什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了訪问 HTML 和 XML 文档的标准: "W3C 文档对象模型 (DOM) ...

随机推荐

  1. kentico中提示Message: An invalid SQL query was used.

    在调用CMSAbstractWebPart类的GetValue方法的时候出错. namespace CMS.PortalEngine.Web.UI{ /// <summary> /// B ...

  2. hdoj--1248--寒冰王座(完全背包)

    寒冰王座 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  3. SQL语句之WITH AS

    一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到. 其实就是把一大堆 ...

  4. windows下安装reidis

    下载windows下redis安装包 https://github.com/MSOpenTech/redis/releases 这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了. 切换 ...

  5. Codeforces 993A. Two Squares(暴力求解)

    解题思路(暴力解法) 平行于x轴的正方形和与x轴成45度倾斜的正方形相交的点中必定有整数点.即若两正方形相交,必定存在整数i,j,使(i,j)同时属于两个正方形. 我们把两个正方形中的整数点都找出来, ...

  6. SwipeRefreshLayout的使用,下拉刷新

    1. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android ...

  7. 任何抛开业务谈大数据量的sql优化都是瞎扯

    周三去某在线旅游公司面试.被问到了一个关于数据量大的优化问题.问题是:一个主外键关联表,主表有一百万数据,外键关联表有一千万的数据,要求做一个连接. 本人接触过单表数据量最大的就是将近两亿行历史数据( ...

  8. 2018年江西理工大学C语言程序设计竞赛高级组部分题解

    B Interesting paths 考察范围:组合数学 此题是机器人走方格的变种,n*m的网格,从(1,1)走到(n,m),首先可以明确,水平要走m-1格,竖直要走n-1格,则走到目的地的任意一条 ...

  9. 我的nginx+php是如何配置的?

    nginx使用homebrew安装,安装之后 ngxin 安装目录:/usr/local/Cellar/nginx/1.8.0 删除掉默认的www目录,创建一个自己方便找到的 删除掉默认的www目录 ...

  10. 3DSMAX制作逼真的欧式沙发建模教程

    这篇教程是朋友们介绍利用3DSMAX制作逼真的欧式沙发建模,教程制作出来的效果真心很不错,通过这篇教程,大家可以学习沙发建模的制作方法和思路,推荐过来,一起来学习吧! 3DSMAX软件下载:http: ...