经过近一个星期,总算把w3chool上的HTML DOM的实例差不多看了一遍,因为本身对其中的很多都用过,所以看起来也很快,现在就再系统的回顾下HTML DOM的一些概念和基础的东西,大部分都是从w3school上看到的

什么是DOM

DOM是w3c(万维网联盟)的标准

DOM定义了访问HTML和XML的标准

"W3C文档对象模型(DOM)是中立于语言和平台的接口,它允许程序和脚本动态的访问和更新文档的结构,内容和样式"

W3C DOM 标准被分为 3 个不同的部分:

● 核心DOM  - 针对任何结构化文档的标准模型

● XML DOM  - 针对XML文档的标准模型

● HTML DOM - 针对HTML文档的标准模型

ps:DOM是 Document Object Model (文本对象模型)的缩写

什么是XML DOM

XML DOM定义了所有xml元素的对象和属性以及访问他们的方法

如果你想学习XML DOM 可以访问 http://www.w3school.com.cn/xmldom/index.asp

什么是HTML DOM

HTML DOM:

● HTML的标准对象模型

● HTML的标准编程接口

● W3C标准

HTML DOM 定义了所有HTML元素的对象和属性以及访问他们的方法,换句话说,HTML DOM是关于如果获取,删除,修改HTML元素的标准

下面就是针对HTML DOM的一些方法属性的介绍

HTML DOM节点

在HTML DOM中,所有事物都是节点,DOM被视为节点树的HTML

DOM节点

据W3C的HTML DOM标准,HTML文档中的所有内容都是节点

● 整个文档是一个文档节点

● 每个 HTML 元素是元素节点

● HTML 元素内的文本是文本节点

● 每个 HTML 属性是属性节点

● 注释是注释节点

HTML DOM节点树

根据HTML DOM标准,树中的所有节点都可以通过javascript进行访问,所有HTML 元素(节点)均能被修改 也可以 删除 和 新增新的节点

节点父子和同胞

下面的图片展示了节点树的一部分,以及节点之间的关系:

父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

● 在节点树中,顶端节点被称为根(root)

● 每个节点都有父节点、除了根(它没有父节点)

● 一个节点可拥有任意数量的子

● 同胞是拥有相同父节点的节点

请看下面的 HTML 片段:

DOM 教程

DOM 第一课

Hello world!

从上面的 HTML 中:

●  节点没有父节点;它是根节点

和 的父节点是 节点

●  文本节点 "Hello world!" 的父节点是

节点

并且:

●  节点拥有两个子节点:

节点拥有一个子节点: 节点

节点也拥有一个子节点:文本节点 "DOM 教程"

节点是同胞节点,同时也是

的子节点

并且:

元素是 元素的首个子节点

元素是 元素的最后一个子节点

元素是 元素的首个子节点

元素是

元素的最后一个子节点

注意:

DOM 处理中的常见错误是希望元素节点包含文本。

在本例中:

DOM 教程,元素节点 ,包含值为 "DOM 教程" 的文本节点。

可通过节点的 innerHTML 属性来访问文本节点的值。

HTML DOM 方法

方法即是我们可以在节点(HTML 元素)上执行的动作。

[b]编程接口[/b]

可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。

所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。

方法是您能够执行的动作(比如添加或修改元素)。

属性是您能够获取或设置的值(比如节点的名称或内容)。

getElementById() 方法返回带有指定 ID 的元素:

例: var element=document.getElementById("intro");

HTML DOM 对象 - 方法和属性

一些常用的 HTML DOM 方法:

●  getElementById(id) - 获取带有指定 id 的节点(元素)

●  appendChild(node) - 插入新的子节点(元素)

●  removeChild(node) - 删除子节点(元素)

一些常用的 HTML DOM 属性:

●  innerHTML - 节点(元素)的文本值

●  parentNode - 节点(元素)的父节点

●  childNodes - 节点(元素)的子节点

●  attributes - 节点(元素)的属性节点

下面也是一些常用方法:

下面是一些属性介绍:

innerHTML 属性

获取元素内容的最简单方法是使用 innerHTML 属性。

innerHTML 属性对于获取或替换 HTML 元素的内容很有用。

实例:

Hello World!

var txt=document.getElementById("intro").innerHTML;

document.write(txt);

在上面的例子中,getElementById 是一个方法,而 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概念,js学习之HTML DOM的一些基础概念相关推荐

  1. 【Alljoyn】Alljoyn学习笔记五 AllJoyn开源技术基础概念解析

    AllJoyn开源技术基础概念解析 摘要: 总线(Bus) 实现P2P通信的基础 AllJoyn 的底层协议类似于D-Bus,相当于是跨设备分布式的 D-Bus 总线附件(Bus Attachment ...

  2. D3.js学习指北--第二章,基础复习

    D3学习指北–第二章,基础复习 1.关于html的svg标签   html5里有很多个标签,但是关于D3的应用多用在一个标签上< svg >svg标签可以理解为一个绘画板,里面提供了各类的 ...

  3. JS学习笔记二 DOM,正则表达式简单例子介绍

    一.正则表达式 例子: var patt = /w3school/i; 例子解释: /w3school/i 是一个正则表达式. w3school 是模式(pattern)(在搜索中使用). i 是修饰 ...

  4. js学习总结:DOM节点一(选择器,节点类型)

    DOM:document object model 文档对象模型 DOM就是整个HTML文档的关系图谱(代表整个HTML文档),可以理解为下图: 一.查看元素节点 1.document.getElem ...

  5. 【零基础学JS -3】Javascript学习的前情提要(基础概念 最佳实践 命名约定)

  6. 【小波分析】学习笔记(一):基础概念和小波理论综述

    学习资料来源:http://users.rowan.edu/~polikar/WAVELETS/WTtutorial.html 何为变换? 首先需要了解的是,为什么我们需要变换,以及什么是变换? 将数 ...

  7. 安全学习笔记(一):基础概念

    域名 什么是域名 域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置) 由 ...

  8. 华为云计算HCIA学习笔记-第1章 云计算基础概念

    1.1 云计算课程安排说明 (IA-虚拟化-FC / IP-Linux OpenStack 桌面云/IE-备份容灾迁移) 1.2 为什么云计算IA讲虚拟化? 提前告知学员,为什么IA课程要重点讲解虚拟 ...

  9. 从零学习perl语言--perl学习笔记(1)--从基础概念到hello world编写(本文约1000字)

    perl这个单词是什么意思? practical extraction and report language–实用摘录与报表语言. perl能干什么? perl几乎什么都能干,你甚至可以用perl编 ...

最新文章

  1. 百度智能云一口气发布 14 个新产品,三大视频解决方案,产品最高降价 50%
  2. 机器学习-机器学习简介
  3. medium font size in reuse project sapUiFontSize
  4. 粗谈LINUX下的文件系统管理
  5. MySQL 增加、更新、删除
  6. python3.5模块大全-python tkinter模块使用大全(超全)
  7. Using platform encoding (UTF-8 actually) to copy
  8. Maven学习(四)Maven 命令行选项
  9. 问题:虚拟环境名字相同遇到bug,please specify a different sdk name?
  10. maven 基本常识以及命令
  11. 前后端数据交互(七)——前端跨域解决方案(全)
  12. Qt 解决窗口在多个显示器上显示位置设置问题
  13. java 立体几何体中心点_高中数学知识点大全,立体几何核心考点及解题技巧
  14. 两阶段随机规划模型简介
  15. Coding and Paper Letter(七十五)
  16. 那些让面试官直呼内行的Java知识点(一)
  17. Launcher3如何实现主菜单背景的透明度调整
  18. 7 张简单图片帮你弄懂企业级架构
  19. pandas库读取多个excel文件数据并进行筛选合并处理后导入到新表格中
  20. AVAudioplayer时error解决 创建失败

热门文章

  1. 1千条数据平均分配给15人_5项数据挂零!但5犯太吓人!CBA第1狠人场均干1人
  2. 如何开启mysql计划事件
  3. AUTOSAR从入门到精通100讲(三十五)-Lin通信协议栈分析三部曲LinTrcv配置及代码分析
  4. springboot编写自定义过滤器
  5. 程序员有哪些可以写博客的网站?
  6. mysql主键和聚簇索引_[MySQL] innoDB引擎的主键与聚簇索引
  7. php最常用方法,php 常用方法
  8. CSS知识点整理(2):框模型,定位
  9. 四、spring boot 1.5.4 日志管理
  10. JS之setTimeOut与clearTimeOut