当网页被加载时,浏览器会创建页面的文档对象模型(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 (文档对象模型)的更多相关文章

  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. JS - JSON.stringify

  2. css动画属性--轮播图效果

    通过css的动画属性实现轮播图的显示效果 代码如下: 主体部分: <div id="move"> <ul> <li><img src=&q ...

  3. Ubuntu14.04安装有道词典

    Ubuntu14.04安装有道词典之前要更新系统: sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 在有道官网下载 ...

  4. 51nod_1120:机器人走方格 V3

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1120 Catalan数 基础题,ans=C(2n-2,n-2 ...

  5. 第三篇:RESTful介绍

    在介绍restful之前先放一张从之前文章评论里看到的图,我觉得它把soap和rest之间的一些区别形容地非常形象. 在第一篇和第二篇中我们也介绍过,soap协议传递的报文要基于xml格式的soap消 ...

  6. 将csv格式的文件数据导入mysql中

    示例如下: load data infile 'test.csv'into table `test`fields terminated by ',' optionally enclosed by '& ...

  7. CentOS 访问 Windows 共享目录

    起因 由于公司的网络切换后,将所有的服务器都切换到了指定的网段(工作电脑在一个网络,服务器在另一个网络:这样一来,不同部门的 work stations 可以彼此访问,不同部门的服务器(servers ...

  8. 记Angular与Django REST框架的一次合作(1):分离 or 不分离,it's the question

    前言:本次尝试源于我们内部的一个项目,由于前端逻辑比较复杂,就打算将前后端分开来开发.由于之前用Django开发过软件,对Angular.js(Angular 1.0版)也有一定的了解,因此就将技术路 ...

  9. Python LeetCode

    Python不熟悉 不同的做法 404. Sum of Left Leaves 这是我的做法,AC. class Solution(object): res = 0 def recursive(sel ...

  10. keilc 4 编译出现的几个错误…

    原文地址:keilc 4 编译出现的几个错误解决作者:黑子     今天安装了keilc4,因为项目用到,所以把遇到的几个编译错误解决方法说说,第一次写东西不知道写啥!!    一  第一个是错误提示 ...