HTML DOM基础知识

一、什么是DOM?

1、HTML DOM 定义了访问和操作HTML文档的标准方法。

2、HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)。

3、通过 JavaScript,您可以重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目。要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口。这个入口,连同对 HTML 元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。DOM 可被 JavaScript 用来读取、改变 HTML、XHTML 以及 XML 文档。

4、DOM 被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3):

*Core DOM:定义了一套标准的针对任何结构化文档的对象*XML DOM:定义了一套标准的针对 XML 文档的对象*HTML DOM:定义了一套标准的针对 HTML 文档的对象。

二、HTML DOM节点及节点树

1、节点

根据 DOM,HTML 文档中的每个成分都是一个节点。

DOM 是这样规定的:

整个文档是一个文档节点

每个 HTML 标签是一个元素节点

包含在 HTML 元素中的文本是文本节点

每一个 HTML 属性是一个属性节点

注释属于注释节点

2、Node 层次

节点彼此都有等级关系。

HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。

下面这个图片表示一个文档树(节点树):

3、节点树

1

2

3

DOM Tutorial

4

5

6

DOM Lesson one

7

Hello world!

8

9

上面所有的节点彼此间都存在关系。

*除文档节点之外的每个节点都有父节点。举例,

和 的父节点是 节点,文本节点 "Hello world!" 的父节点是

节点。

*大部分元素节点都有子节点。比方说,

节点有一个子节点: 节点。 节点也有一个子节点:文本节点 "DOM Tutorial"。

*当节点分享同一个父节点时,它们就是同辈(同级节点)。比方说,

是同辈,因为它们的父节点均是

节点。

*节点也可以拥有后代,后代指某个节点的所有子节点,或者这些子节点的子节点,以此类推。比方说,所有的文本节点都是 节点的后代,而第一个文本节点是

节点的后代。

*节点也可以拥有先辈。先辈是某个节点的父节点,或者父节点的父节点,以此类推。比方说,所有的文本节点都可把 节点作为先辈节点。

三、HTML DOM访问节点的方法

1.查找并访问节点

你可通过若干种方法来查找您希望操作的元素:

通过使用 getElementById() 和 getElementsByTagName() 方法

通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性

2.getElementById()和 getElementsByTagName()

(1)getElementById() 可通过指定的 ID 来返回元素,语法:

document.getElementById("ID");

(2)getElementsByTagName() 方法会使用指定的标签名返回所有的元素(作为一个节点列表),这些元素是您在使用此方法时所处的元素的后代。getElementsByTagName() 可被用于任何的 HTML 元素:

语法:

document.getElementsByTagName("标签名称");

或者:

document.getElementById(‘ID‘).getElementsByTagName("标签名称");

<访问节点列表时,索引号从0开始>

3.parentNode、firstChild以及lastChild

这三个属性 parentNode、firstChild 以及 lastChild 可遵循文档的结构,在文档中进行“短距离的旅行”。对 firstChild 最普遍的用法是访问某个元素的文本;parentNode 属性常被用来改变文档的结构;

4.根节点

有两种特殊的文档属性可用来访问根节点:

document.documentElement

document.body

第一个属性可返回存在于 XML 以及 HTML 文档中的文档根节点。

第二个属性是对 HTML 页面的特殊扩展,提供了对

标签的直接访问。

四.节点信息

每个节点都拥有包含着关于节点某些信息的属性。这些属性是:

nodeName(节点名称)

nodeValue(节点值)

nodeType(节点类型)

1.nodeName

nodeName 属性含有某个节点的名称。

元素节点的 nodeName 是标签名称

属性节点的 nodeName 是属性名称

文本节点的 nodeName 永远是 #text

文档节点的 nodeName 永远是 #document

注释:nodeName 所包含的 XML 元素的标签名称永远是大写的

2.nodeValue

对于文本节点,nodeValue 属性包含文本。

对于属性节点,nodeValue 属性包含属性值。

nodeValue 属性对于文档节点和元素节点是不可用的。

3.nodeType

nodeType 属性可返回节点的类型。

dom定义了访问html文档对象的一套,HTML DOM基础知识(示例代码)相关推荐

  1. dom定义了访问html文档对象的,HTML DOM (文档对象模型)

    HTML DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. HTML DOM 树 DO ...

  2. dom文档对象手册_HTML5学习之DOM编程

    DOM是Document Object Model的缩写,中文名称是文档对象模型. DOM是处理HTML页面的标准编程接口,[前端精选40G资料包赠送co,每日新闻资讯ding,每天进步一点点bb,小 ...

  3. Linkis1.0用户使用文档:JAVA和SCALA调用Linkis的接口示例代码

    Linkis 提供了方便的JAVA和SCALA调用的接口,只需要引入linkis-computation-client的模块就可以进行使用,1.0后新增支持带Label提交的方式,下面将对兼容0.X的 ...

  4. 第一百一十四节,JavaScript文档对象,DOM进阶

    JavaScript文档对象,DOM进阶 学习要点: 1.DOM类型 2.DOM扩展 3.DOM操作内容 DOM自身存在很多类型,在DOM基础课程中大部分都有所接触,比如Element类型:表示的是元 ...

  5. js高级编号笔记[新]-访问文档对象

    1.通过name 属性访问文档对象 document.MyForm1.MyTextOfForm1.value 2.通过id 属性访问文档对象 var currentElement=document.g ...

  6. dom文档对象手册_编程小白网页学习笔记之文档对象模型(DOM)

    经过一周的学习,我这个前端小白对网页的学习,又有了新的进展,这不过来跟大家分享我的心得了.这次要分享的,主要就是我的学习的途径.上次很随意地开始了一个网页代码的初印象,还记得上次写的那几行小代码嘛,那 ...

  7. 【Qt】DOM创建和操作XML文档

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 创建XML文档 04. 读取XML文档 05. 增加XML节点 06. 查找.删除.更新XML文档 07. 附录 01. ...

  8. [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档

    [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档 楼主  发表于 2013-5-21 22:00:51 | 查看: 475| 回复: 0 使用DOM创建和操作XML文档 版权声明 该 ...

  9. 什么是document对象?如何获取文档对象上的元素?_dom对象

    DOM对象 1. DOM树 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),通过 HTML DOM对象,可访问 JavaScript HTML 文档的所有 ...

  10. 分别使用dom和dom4j解析XML文档

    1.dom和dom4j的特点 dom是基于XML的树结构来完成解析的.dom解析XML文档时,会根据读取的文档,构建一个驻留内存的树结构,然后就可以使用dom接口来对XML文档进行增删查改等操作.do ...

最新文章

  1. C# C++ Java
  2. 关于c#中 的动态加载程序集
  3. python小白逆袭大神课程心得_python小白逆袭大神(深度学习7日训练营)——心得体会...
  4. USACO Training Section 1.2 双重回文数 Dual Palindrom
  5. OpenCV2:应用篇 三维重建
  6. ARMA模型性质之平稳AR模型得统计性质
  7. java方法中与参数怎么调用_与Java方法调用中的类型参数有关的问题
  8. 理解Dubbo的调用流程与Dubbo多协议解析
  9. 职场老实人的十大升职障碍
  10. 文件夹无法删除详细解决方案(Windows版)
  11. 广义相对论和量子力学的根本矛盾
  12. kb4524157安装失败_KB4551762安装失败怎么办_KB4551762更新无法安装解决方法 - 系统家园...
  13. Access根据出生日期计算年龄_WPS表格技巧—如何根据出生年月日求虚岁年龄
  14. android p新功能_android 11 android的11大新功能
  15. 嘀咕网李松聊LBS创业:烧3000万美元是起点
  16. 区块链开发(十四)以太坊go-ethereum客户端查询交易列表探讨
  17. 一文教你搞定PMOS管选型
  18. PDF转图片乱码问题解决
  19. 面向中小企业的SpringBoot管理系统,拿来学习真香
  20. python发送邮件群发_Python发邮件脚本,Python调用163邮箱SMTP服务实现邮件群发

热门文章

  1. MySQL技术内幕 InnoDB存储引擎【一】
  2. 【转】HEIF图片存储格式探秘
  3. python map对象
  4. Excel基本操作技巧荟萃(值得您深入探讨 他懂了)
  5. VS2010远程调试
  6. C/C++链接过程相关
  7. 有朋自远方来——阿里软件专家作客武汉博文
  8. JS拖动技术--- 关于setCapture
  9. 数据库设计方法、规范和技巧
  10. 【python】多线程小结