12、HTML DOM
来源:HTML DOM 教程
0、什么是 HTML DOM?
HTML DOM 是HTML Document Object Model(文档对象模型)的缩写,它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑,也就是:
- HTML 的标准对象模型
- HTML 的标准编程接口(所有HTML元素被定义为对象,而编程接口则是对象方法和对象属性)
- W3C 标准
HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。
换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。
1、DOM 节点
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
- 整个文档是一个 文档节点
- 每个 HTML 元素是 元素节点
- HTML 元素内的文本是 文本节点
- 每个 HTML 属性是 属性节点
- 注释是 注释节点
2、HTML DOM 方法
方法是我们可以在节点上执行的动作(比如添加或修改元素)。
这里提供一些您将在本教程中学到的常用方法:
方法 | 描述 |
---|---|
getElementById() | 返回带有指定 ID 的元素。 |
getElementsByTagName() | 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。 |
getElementsByClassName() | 返回包含带有指定类名的所有元素的节点列表。 |
appendChild() | 把新的子节点添加到指定节点。 |
removeChild() | 删除子节点。 |
replaceChild() | 替换子节点。 |
insertBefore() | 在指定的子节点前面插入新的子节点。 |
createAttribute() | 创建属性节点。 |
createElement() | 创建元素节点。 |
createTextNode() | 创建文本节点。 |
getAttribute() | 返回指定的属性值。 |
setAttribute() | 把指定属性设置或修改为指定的值。 |
3、HTML DOM 属性
属性是节点能够被获取或设置的值(比如节点的名称或内容)。
3、1 innerHTML 属性
用来获取或设置位于对象起始和结束标签内的HTML。
有两种写法:(1)document.getElementById(id).innerHTML=.......(2)id.innerHTML=.......
3、2 nodeName 属性
nodeName 属性规定节点的名称。
- nodeName 是只读的
- 元素节点的 nodeName 与 标签名相同
- 属性节点的 nodeName 与 属性名相同
- 文本节点的 nodeName 始终是 #text
- 文档节点的 nodeName 始终是 #document
3、3 nodeValue 属性
nodeValue 属性规定节点的值。
- 元素节点的 nodeValue 是 undefined 或 null
- 文本节点的 nodeValue 是文本本身
- 属性节点的 nodeValue 是属性值
3、4 nodeType 属性
nodeType 属性返回节点的类型。nodeType 是只读的。
比较重要的节点类型有:
元素类型 | NodeType |
---|---|
元素 | 1 |
属性 | 2 |
文本 | 3 |
注释 | 8 |
文档 | 9 |
4、HTML DOM 访问
访问 HTML 元素等同于访问节点,有以下几种方式:
- 通过使用 getElementById() 方法
- 通过使用 getElementsByTagName() 方法,如document.getElementsByTagName("p");
- 通过使用 getElementsByClassName() 方法,如document.getElementsByClassName("intro");(其中class="intro",在IE5,6,7,8中无效)
5、HTML DOM - 修改
修改 HTML = 改变元素、属性、样式和事件。主要有以下几个不同的方面:
(1)、改变 HTML 内容——innerHTML(元素节点) 属性或 nodeValue (有内容的文本节点才能使用)属性
(2)、改变 CSS 样式——如document.getElementById("p2").style.color="blue";
(3)、改变 HTML 属性——如document.getElementById("image").src(属性名)="landscape.jpg";
(4)、创建新的 HTML 元素
首先创建该元素(元素节点),然后把它追加到已有的元素上,有以下三种方法:
(5)、删除已有的 HTML 元素
使用removeChild()方法
<div id="div1"> <p id="p1">This is a paragraph.</p> <p id="p2">This is another paragraph.</p> </div> <script>(1)引用父元素 var parent=document.getElementById("div1"); //查找要删除元素的父元素 var child=document.getElementById("p1"); //查找要删除的元素 parent.removeChild(child); //从父元素中删除子元素(2)不引用父元素
var child=document.getElementById("p1"); //查找需要删除的元素 child.parentNode.removeChild(child); //使用parentNode属性来查找父元素从而删除元素 </script>
(6)替换HTML元素
使用 replaceChild() 方法。
如 parent.replaceChild(para,child); 将child替换成para元素
(6)、改变事件(处理程序)
转载于:https://www.cnblogs.com/cjlalala/p/5804349.html
12、HTML DOM相关推荐
- 高德地图轨迹回放、点的弹跳效果、浏览器环境监测、设置地图的主题样式、GPS坐标转为高德坐标、地图加载提示、地图DOM事件、修改图层等API接口
1.轨迹回放 https://lbs.amap.com/api/javascript-api/example/marker/replaying-historical-running-data 2.点的 ...
- 十二、虚拟 DOM 和 render() 函数(1)
本章概要 虚拟DOM render()函数 Vue.js 之所以执行性能高,一个很重要的原因就是它的虚拟 DOM 机制. 12.1 虚拟 DOM 浏览器在解析 HTML 文档时,会将文档中的元素.注释 ...
- mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...
mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...
- 石川es6课程---12、Promise
石川es6课程---12.Promise 一.总结 一句话总结: 用同步的方式来书写异步代码,让异步书写变的特别简单 用同步的方式来书写异步代码 Promise 让异步操作写起来,像在写同步操作的流程 ...
- 黑马lavarel教程---12、lavarel验证码
黑马lavarel教程---12.lavarel验证码 一.总结 一句话总结: 用插件的时候仔细看插件的版本要求 1.lavarel安装验证码插件的时候,如果(可选)需要定义自己的配置,则需要生成配置 ...
- 石川es6课程---1-2、ES6简介
石川es6课程---1-2.ES6简介 一.总结 一句话总结: 从ECMAScript的历史发展来看,太顺了的时候总会遇到一挫折,比如ecma4 1.ECMAScript 和 JavaScript关系 ...
- 心得体悟帖---12、志向还是太短浅,目光也是
心得体悟帖---12.志向还是太短浅,目光也是 一.总结 一句话总结: p*的*n,你为什么会觉得不可能了呢,这才是最大的问题. 1.无欲无求是非常糟糕的状态,修仙小说中的主角每时每刻都面临着巨大无比 ...
- Java黑皮书课后题第6章:6.1(数学:五角数)一个五角数被定义为n*(3*n-1)/2,其中n=1、2…。所以开始的几个数字就是1、5、12、22…,编写具有以下方法头的方法,返回一个五角数
6.1(数学:五角数)一个五角数被定义为n*(3*n-1)/2,其中n=1.2-..所以开始的几个数字就是1.5.12.22-,编写具有以下方法头的方法,返回一个五角数 题目 题目概述 破题 代码 运 ...
- java 多线程缓存_[Java教程]【JAVA并发编程实战】12、使用condition实现多线程下的有界缓存先进先出队列...
[Java教程][JAVA并发编程实战]12.使用condition实现多线程下的有界缓存先进先出队列 0 2016-11-29 17:00:10 package cn.study.concurren ...
最新文章
- YII2框架表单-model(验证)-HTML_help部件 URL_help部件 以注册页面为实例
- 排序算法(还需补充)
- 深入理解分布式技术 - 缓存高可用
- 利用 Selenium 自动化 web 测试【步骤详解】
- Tomcat7基于Redis的Session共享实战二
- C#完美实现透明窗体的绘制效果
- twitter storm源码走读(五)
- .Net5 WPF快速入门系列教程
- oracle性能优化求生指南_oracle性能优化:高水位线(HWM)详解--如何计算HWM
- 用Python做一个简单的翻译工具
- asp.net 读取mysql数据库_asp.net访问MySQL数据库
- Unknown symbol platform_driver_unregister (err 0)
- 在net.tcp模式下,由SvcUtil.exe生成代理类文件和配置文件(转)
- shell脚本定义日志输出函数
- 线性表部分知识点小结
- 面向对象java试题_经典面向对象试题,用Java做,要详细点的!先谢过了
- 计算机360u盘删除,如何删除U盘在电脑中的使用痕迹
- 怎么找到当地供应商_微商怎么找一手货源供货商(微商新手必看教程)
- HIT 软件构造 lab3实验报告
- 黑人是晒黑的吗_当您是互联网上的黑人时,无处可逃