HTML DOM (文档对象模型)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树。
HTML DOM 树
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
- JavaScript 能够改变页面中的所有 HTML 元素
- JavaScript 能够改变页面中的所有 HTML 属性
- JavaScript 能够改变页面中的所有 CSS 样式
- JavaScript 能够对页面中的所有事件做出反应
- 查找 HTML 元素
- 通常,通过 JavaScript,您需要操作 HTML 元素。
- 为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:
- 通过 id 找到 HTML 元素
- 通过标签名找到 HTML 元素
- 通过类名找到 HTML 元素
一、改变HTML 元素
1、改变 HTML 输出流
JavaScript 能够创建动态的 HTML 内容:
今天的日期是: Mon Apr 17 2017 10:32:53 GMT+0800 (中国标准时间)
在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。
- <!DOCTYPE html>
- <html>
- <body>
- <script>
- document.write(Date()); //当前日期
- </script>
- </body>
- </html>
2、改变 HTML 内容
改变 HTML 元素的内容,语法:
- document.getElementById(id).innerHTML=new HTML
- 例:改变id="header" HTML内容
- <h1 id="header">Old Header</h1>
- //方法一:
- <script>document.getElementById("header").innerHTML="New Header!"; </script>
- //方法二:
- <script> var element=document.getElementById("header"); element.innerHTML="New Header"; </script>
- 使用 HTML DOM[document.getElementById(id)]来获得 id="header" 的元素,JavaScript 更改此元素的内容 (innerHTML)
3、改变 HTML 属性
改变 HTML 元素的属性,语法:
- document.getElementById(id).attribute=new value
- 例:改变id="image" HTML属性src
- <img id="image" src="smiley.gif">
- <script>document.getElementById("image").src="landscape.jpg";</script>
- 使用 HTML DOM[document.getElementById(id)]来获得 id="image" 的元素,JavaScript 更改此元素的属性.src[把 "smiley.gif" 改为 "landscape.jpg"];
二、改变 HTML 样式
改变 HTML 元素的样式,语法:
- document.getElementById(id).style.property=new style
- 例:改变id="p2"样式颜色style.color,点击按钮改变id="id1"样式颜色style.color
- <p id="p2">Hello World!</p>
- <script>
- document.getElementById("p2").style.color="blue";
- </script>
- <h1 id="id1">My Heading 1</h1>
- <button type="button" onclick="document.getElementById('id1').style.color='red'">点击这里</button>
三、JavaScript HTML DOM 事件
1、对事件做出反应
在事件发生时执行 JavaScript,如当用户在 HTML 元素上点击时。如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码:
- onclick=JavaScript
HTML 事件的例子:
- 当用户点击鼠标时
- 当网页已加载时
- 当图像已加载时
- 当鼠标移动到元素上时
- 当输入字段被改变时
- 当提交 HTML 表单时
- 当用户触发按键时
例:点击文本触发onclick事件,改变HTML内容
- <h1 onclick="this.innerHTML='谢谢!'">请点击该文本</h1>
例:点击文本触发onclick事件,调用changetext()函数,改变HTML内容
function changetext(id)
{
id.innerHTML="谢谢!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)">请点击该文本</h1>
例:点击文本触发onclick事件,调用displayDate()函数,查找到id="demo",出现HTML内容(当前时间Data())
<button onclick="displayDate()">点击这里</button>
<script>
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
2、HTML 事件属性
向 HTML 元素分配 事件,使用事件属性。
例:点击文本触发onclick事件,调用displayDate()函数,查找到id="demo",出现HTML内容(当前时间Data())
<button onclick="displayDate()">点击这里</button>
<script>
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
3、使用 HTML DOM 来分配事件
HTML DOM 允许您通过使用 JavaScript 来向 HTML 元素分配事件。
例:查找到id="myBtn",点击文本触发onclick事件,调用displayDate()函数,出现HTML内容(当前时间Data())
<button id="myBtn">点击这里</button>
<script>
document.getElementById("myBtn").onclick=function(){displayDate()};
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
4、onload 和 onunload 事件
例:onload 和 onunload 事件会在用户进入或离开页面时被触发。
onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
onload 和 onunload 事件可用于处理 cookie。
- <script>
- function checkCookies()
- {
- if (navigator.cookieEnabled==true)
- {
- alert("已启用 cookie")
- }
- else
- {
- alert("未启用 cookie")
- }
- }
- </script>
- <p>提示框会告诉你,浏览器是否已启用 cookie。</p>
5、onchange 事件
例:onchange 事件用户改变输入域的内容时执行。常结合对输入字段的验证来使用。
- x.value.toUpperCase()所有英文变成大写
- function myFunction()
- {
- var x=document.getElementById("fname");
- x.value=x.value.toUpperCase();
- }
- </script>
- </head>
- <body>
- 请输入英文字符:<input type="text" id="fname" onchange="myFunction()">
6、onmouseover 和 onmouseout 事件
例:onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。
<div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</div>
<script>
function mOver(obj)
{
obj.innerHTML="谢谢.gh";
obj.style.color='#ffffff';//改变字体颜色
obj.style.backgroundColor='red';//改变背景颜色
obj.style.fontSize='20px';//改为字体大小
obj.style.width='140px'; //改变宽度
obj.style.height='30px';//改变高度
obj.style.borderRadius='5px';//改变圆角
- }
- function mOut(obj) {
obj.innerHTML="把鼠标移到上面";
obj.style.color='#ffffff';
obj.style.backgroundColor='green';
obj.style.fontSize='14px';
obj.style.width='120px';
obj.style.height='20px';
obj.style.borderRadius='60px';
} </script>
7、onmousedown、onmouseup 以及 onclick 事件
onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。
- <div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:green;color:#ffffff;width:90px;height:20px;padding:40px;font-size:12px;">请点击这里</div>
- <script>
- function mDown(obj)
- {
- obj.style.backgroundColor="#1ec5e5";
- obj.innerHTML="请释放鼠标按钮"
- }
- function mUp(obj)
- {
- obj.style.backgroundColor="green";
- obj.innerHTML="请按下鼠标按钮"
- }
四、JavaScript HTML DOM 元素(节点)
1、创建新的 HTML 元素
向 HTML DOM 添加新元素,必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。
例:为div1加一个段落,段落内容为”这是新段落“;
- <div id="div1">
- <p id="p1">这是一个段落。</p>
- <p id="p2">这是另一个段落。</p>
- </div>
- <script>
- var para=document.createElement("p");// 创建新的 <p> 元素
- var node=document.createTextNode("这是新段落。");//向 <p> 元素添加文本,必须首先创建文本节点
- para.appendChild(node);//向 <p> 元素追加这个文本节点
- var element=document.getElementById("div1");//找到一个已有的元素
- element.appendChild(para); </script>//向这个已有的元素追加新元素;
2、删除已有的 HTML 元素
删除 HTML 元素,必须首先获得该元素的父元素:
- /*这个 HTML 文档含有拥有两个子节点(两个 <p> 元素)的 <div> 元素*/
<div id="div1">- <p id="p1">这是一个段落。</p>
- <p id="p2">这是另一个段落。</p>
- </div>
- <script>
- var parent=document.getElementById("div1");//找到 id="div1" 的元素
- var child=document.getElementById("p1");//找到 id="p1" 的 <p> 元素
- parent.removeChild(child);//从父元素中删除子元素:
- </script>
提示:如果能够在不引用父元素的情况下删除某个元素,就太好了。不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。
解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:
- var child=document.getElementById("p1");
- child.parentNode.removeChild(child);
HTML DOM (文档对象模型)的更多相关文章
- javascript之DOM文档对象模型编程的引入
/* DOM(Document Object Model) 文档对象模型 一个html页面被浏览器加载的时候,浏览器就会对整个html页面上的所有标签都会创建一个对应的 对象进行描述,我们在浏览器上看 ...
- JavaScript(三、DOM文档对象模型)
一.什么是DOM DOM 是 Document Object Model(文档对象模型)的缩写. DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: &q ...
- html--JavaScript之DOM (文档对象模型)
一.简介 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标 ...
- DOM文档对象模型简介
DOM简介 DOM是W3C(万维网联盟)的标准 "W3C文档对象模型DOM是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构.样式".W3C DOM ...
- dom文档对象模型图
- 文档对象模型 DOM
1 DOM概述 1.1 什么是DOM 文档对象模型 Document Object Model 文档对象模型 是表示和操作 HTML和XML文档内容的基础API 文档对象模型,是W3C组织推荐的处理可 ...
- JavaScript交互式网页设计 • 【第4章 JavaScript文档对象模型】
全部章节 >>>> 本章目录 4.1 文档对象模型简介及属性 4.1.1 文档对象模型概述 4.1.3 实践练习 4.2 document 对象查找 HTML 元素 4.2 ...
- DOM(文档对象模型)
1.定义: DOM是Document Object Model文档对象模型的缩写.是针对HTML和XML文档的一个API,通过DOM可以去改变文档. 例如:我们有一段HTML,那么如何访问第二层第一个 ...
- 文档对象模型(DOM)中的结点属性
在文档对象模型中,每个结点都是一个对象.DOM结点有三个重要的属性:nodeName .nodeValue和nodeType,分别表示结点名称.结点的值和结点的类型 一.nodeName,结点名称,只 ...
- 文档对象模型(DOM)
文档对象模型(DOM) DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的结构.节点分为几种不同的类型:文档型节点.元素节点.特性节点.注释节点等共有12种节点类型.DOM1级定义了 ...
随机推荐
- 2.1 insertion sort 《算法导论》答案
2.1 insertion sort <算法导论>答案 答案索引帖 2.1-1 Using Figure 2.2 as a model, illustrate the operation ...
- (转)Centos搭建FTP服务器
场景:ftp服务器对于在Linux服务器上进行文件操作太方便,在安装软件时候,大的软件也可以先上传再进行安装! 1 搭建FTP服务器 1.1 检查vsftpd 查看是否已经安装vsftpd rpm - ...
- Java单线程文件下载,支持断点续传功能
前言: 程序下载文件时,有时会因为各种各样的原因下载中断,对于小文件来说影响不大,可以快速重新下载,但是下载大文件时,就会耗费很长时间,所以断点续传功能对于大文件很有必要. 文件下载的断点续传: 1. ...
- css3关键帧动画实现轮播效果
实现效果:打开手机京东,可以看到首页的头部,以这个头部为基础,仿写一个类似的样式. 思路:仔细观察可以发现,手机京东的头部是以一个搜索栏和轮播特效组成的,而这个搜索栏是以轮播特效做为背景的,现在运用c ...
- Android学习笔记-TextView(文本框)(二)
2.4 使用autoLink属性识别链接类型 当文字中出现了URL,E-Mail,电话号码,地图的时候,我们可以通过设置autoLink属性:当我们点击 文字中对应部分的文字,即可跳转至某默认APP, ...
- 蓝桥杯比赛javaB组练习《四平方和》
四平方和 四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和.如果把0包括进去,就正好可以表示为4个数的平方和. 比如:5 = 0^2 + 0^2 + 1^2 + 2^27 ...
- Swift4 Json
swift4 带来了原生的json解析,它们分别是 JSONDecoder和JSONEncoder,使用起来还算方便,不过为了更方便,我把它们又进行了简单的封装: class JsonHelper { ...
- File的getParentFile()和getParent()
代码: File file = new File("D:\\javaemp\\code\\java.txt"); String str1 = file.getP ...
- Hbase架构与原理
Hbase架构与原理 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就 ...
- 136. Single Number【LeetCode】异或运算符,算法,java
Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...