当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

HTML DOM 模型被构造为对象的树。

HTML DOM 树

通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应
  1. 查找 HTML 元素
  2. 通常,通过 JavaScript,您需要操作 HTML 元素。
  3. 为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:
  4. 通过 id 找到 HTML 元素
  5. 通过标签名找到 HTML 元素
  6. 通过类名找到 HTML 元素

一、改变HTML 元素

1、改变 HTML 输出流

JavaScript 能够创建动态的 HTML 内容:

今天的日期是: Mon Apr 17 2017 10:32:53 GMT+0800 (中国标准时间)

在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <script>
  6. document.write(Date()); //当前日期
  7. </script>
  8.  
  9. </body>
  10. </html>

2、改变 HTML 内容

改变 HTML 元素的内容,语法:

  1. document.getElementById(id).innerHTML=new HTML
  1. 例:改变id="header" HTML内容
  1. <h1 id="header">Old Header</h1>
  1. //方法一:
  1. <script>document.getElementById("header").innerHTML="New Header!"; </script>
  1. //方法二:
  1. <script> var element=document.getElementById("header"); element.innerHTML="New Header"; </script>
  1. 使用 HTML DOM[document.getElementById(id)]来获得 id="header" 的元素,JavaScript 更改此元素的内容 (innerHTML)

3、改变 HTML 属性

改变 HTML 元素的属性,语法:

  1. document.getElementById(id).attribute=new value
  1. 例:改变id="image" HTML属性src
  1. <img id="image" src="smiley.gif">
  2.  
  3. <script>document.getElementById("image").src="landscape.jpg";</script>
  1. 使用 HTML DOM[document.getElementById(id)]来获得 id="image" 的元素,JavaScript 更改此元素的属性.src[把 "smiley.gif" 改为 "landscape.jpg"];

二、改变 HTML 样式

改变 HTML 元素的样式,语法:

  1. document.getElementById(id).style.property=new style
  1. 例:改变id="p2"样式颜色style.color,点击按钮改变id="id1"样式颜色style.color
  1. <p id="p2">Hello World!</p>
  2. <script>
  3. document.getElementById("p2").style.color="blue";
  4. </script>
  5.  
  6. <h1 id="id1">My Heading 1</h1>
  7. <button type="button" onclick="document.getElementById('id1').style.color='red'">点击这里</button>

三、JavaScript HTML DOM 事件

1、对事件做出反应

在事件发生时执行 JavaScript,如当用户在 HTML 元素上点击时。如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码:

  1. onclick=JavaScript

HTML 事件的例子:

  • 当用户点击鼠标时
  • 当网页已加载时
  • 当图像已加载时
  • 当鼠标移动到元素上时
  • 当输入字段被改变时
  • 当提交 HTML 表单时
  • 当用户触发按键时

例:点击文本触发onclick事件,改变HTML内容

  1. <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>

  1.  

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。

  1. <script>
  2. function checkCookies()
  3. {
  4. if (navigator.cookieEnabled==true)
  5. {
  6. alert("已启用 cookie")
  7. }
  8. else
  9. {
  10. alert("未启用 cookie")
  11. }
  12. }
  13. </script>
  14.  
  15. <p>提示框会告诉你,浏览器是否已启用 cookie。</p>

5、onchange 事件

例:onchange 事件用户改变输入域的内容时执行。常结合对输入字段的验证来使用。

  1. x.value.toUpperCase()所有英文变成大写
  1. function myFunction()
  2. {
  3. var x=document.getElementById("fname");
  4. x.value=x.value.toUpperCase();
  5. }
  6. </script>
  7. </head>
  8. <body>
  9.  
  10. 请输入英文字符:<input type="text" id="fname" onchange="myFunction()">

6、onmouseover 和 onmouseout 事件

例:onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。

  1.  

<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';//改变圆角

  1. }
  2. 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 事件。

  1. <div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:green;color:#ffffff;width:90px;height:20px;padding:40px;font-size:12px;">请点击这里</div>
  2.  
  3. <script>
  4. function mDown(obj)
  5. {
  6. obj.style.backgroundColor="#1ec5e5";
  7. obj.innerHTML="请释放鼠标按钮"
  8. }
  9.  
  10. function mUp(obj)
  11. {
  12. obj.style.backgroundColor="green";
  13. obj.innerHTML="请按下鼠标按钮"
  14. } 

四、JavaScript HTML DOM 元素(节点)

1、创建新的 HTML 元素

向 HTML DOM 添加新元素,必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。

例:为div1加一个段落,段落内容为”这是新段落“;

  1. <div id="div1">
  2. <p id="p1">这是一个段落。</p>
  3. <p id="p2">这是另一个段落。</p>
  4. </div>
  5.  
  6. <script>
  7. var para=document.createElement("p");// 创建新的 <p> 元素
  8. var node=document.createTextNode("这是新段落。");//向 <p> 元素添加文本,必须首先创建文本节点
  9. para.appendChild(node);//向 <p> 元素追加这个文本节点
  10.  
  11. var element=document.getElementById("div1");//找到一个已有的元素
  1. element.appendChild(para); </script>//向这个已有的元素追加新元素;

2、删除已有的 HTML 元素

删除 HTML 元素,必须首先获得该元素的父元素:

  1. /*这个 HTML 文档含有拥有两个子节点(两个 <p> 元素)的 <div> 元素*/
    <div id="div1">
  2. <p id="p1">这是一个段落。</p>
  3. <p id="p2">这是另一个段落。</p>
  4. </div>
  5.  
  6. <script>
  7. var parent=document.getElementById("div1");//找到 id="div1" 的元素
  8. var child=document.getElementById("p1");//找到 id="p1" 的 <p> 元素
  9. parent.removeChild(child);//从父元素中删除子元素:
  10. </script>

提示:如果能够在不引用父元素的情况下删除某个元素,就太好了。不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。

解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:

  1. var child=document.getElementById("p1");
  2. child.parentNode.removeChild(child);
 

HTML DOM (文档对象模型)的更多相关文章

  1. javascript之DOM文档对象模型编程的引入

    /* DOM(Document Object Model) 文档对象模型 一个html页面被浏览器加载的时候,浏览器就会对整个html页面上的所有标签都会创建一个对应的 对象进行描述,我们在浏览器上看 ...

  2. JavaScript(三、DOM文档对象模型)

    一.什么是DOM DOM 是 Document Object Model(文档对象模型)的缩写. DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: &q ...

  3. html--JavaScript之DOM (文档对象模型)

    一.简介 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标 ...

  4. DOM文档对象模型简介

    DOM简介     DOM是W3C(万维网联盟)的标准 "W3C文档对象模型DOM是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构.样式".W3C DOM ...

  5. dom文档对象模型图

  6. 文档对象模型 DOM

    1 DOM概述 1.1 什么是DOM 文档对象模型 Document Object Model 文档对象模型 是表示和操作 HTML和XML文档内容的基础API 文档对象模型,是W3C组织推荐的处理可 ...

  7. JavaScript交互式网页设计 • 【第4章 JavaScript文档对象模型】

    全部章节   >>>> 本章目录 4.1 文档对象模型简介及属性 4.1.1 文档对象模型概述 4.1.3 实践练习 4.2 document 对象查找 HTML 元素 4.2 ...

  8. DOM(文档对象模型)

    1.定义: DOM是Document Object Model文档对象模型的缩写.是针对HTML和XML文档的一个API,通过DOM可以去改变文档. 例如:我们有一段HTML,那么如何访问第二层第一个 ...

  9. 文档对象模型(DOM)中的结点属性

    在文档对象模型中,每个结点都是一个对象.DOM结点有三个重要的属性:nodeName .nodeValue和nodeType,分别表示结点名称.结点的值和结点的类型 一.nodeName,结点名称,只 ...

  10. 文档对象模型(DOM)

    文档对象模型(DOM)    DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的结构.节点分为几种不同的类型:文档型节点.元素节点.特性节点.注释节点等共有12种节点类型.DOM1级定义了 ...

随机推荐

  1. 2.1 insertion sort 《算法导论》答案

    2.1 insertion sort <算法导论>答案 答案索引帖 2.1-1 Using Figure 2.2 as a model, illustrate the operation ...

  2. (转)Centos搭建FTP服务器

    场景:ftp服务器对于在Linux服务器上进行文件操作太方便,在安装软件时候,大的软件也可以先上传再进行安装! 1 搭建FTP服务器 1.1 检查vsftpd 查看是否已经安装vsftpd rpm - ...

  3. Java单线程文件下载,支持断点续传功能

    前言: 程序下载文件时,有时会因为各种各样的原因下载中断,对于小文件来说影响不大,可以快速重新下载,但是下载大文件时,就会耗费很长时间,所以断点续传功能对于大文件很有必要. 文件下载的断点续传: 1. ...

  4. css3关键帧动画实现轮播效果

    实现效果:打开手机京东,可以看到首页的头部,以这个头部为基础,仿写一个类似的样式. 思路:仔细观察可以发现,手机京东的头部是以一个搜索栏和轮播特效组成的,而这个搜索栏是以轮播特效做为背景的,现在运用c ...

  5. Android学习笔记-TextView(文本框)(二)

    2.4 使用autoLink属性识别链接类型 当文字中出现了URL,E-Mail,电话号码,地图的时候,我们可以通过设置autoLink属性:当我们点击 文字中对应部分的文字,即可跳转至某默认APP, ...

  6. 蓝桥杯比赛javaB组练习《四平方和》

    四平方和 四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和.如果把0包括进去,就正好可以表示为4个数的平方和. 比如:5 = 0^2 + 0^2 + 1^2 + 2^27 ...

  7. Swift4 Json

    swift4 带来了原生的json解析,它们分别是 JSONDecoder和JSONEncoder,使用起来还算方便,不过为了更方便,我把它们又进行了简单的封装: class JsonHelper { ...

  8. File的getParentFile()和getParent()

    代码:      File file = new File("D:\\javaemp\\code\\java.txt");      String str1 = file.getP ...

  9. Hbase架构与原理

    Hbase架构与原理 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就 ...

  10. 136. Single Number【LeetCode】异或运算符,算法,java

    Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...