JavaScript HTML DOM学习记录
HTML DOM (文档对象模型)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树。
HTML DOM 树
通过可编程的对象模型,JavaScript获得了足够的能力来创建动态的 HTML。
l JavaScript 能够改变页面中的所有 HTML 元素
l JavaScript 能够改变页面中的所有 HTML 属性
l JavaScript 能够改变页面中的所有 CSS 样式
l JavaScript 能够对页面中的所有事件做出反应
二 查找 HTML 元素
通常,通过 JavaScript,您需要操作 HTML 元素。
有三种方法来找到要操作的元素:
l 通过 id 找到 HTML 元素
document.getElementById(id)
l 通过标签名找到 HTML 元素
getElementsByTagName(tagName)
l 通过类名找到 HTML 元素 (在 IE 5,6,7,8 中无效)
三 改变 HTML
1.改变 HTML 输出流
document.write()
可用于直接向 HTML 输出流写内容。
提示:绝不要使用在文档加载之后使用 document.write()。这会覆盖该文档。
2. 改变 HTML 内容
document.getElementById(id).innerHTML=newHTML
3. 改变 HTML 属性
document.getElementById(id).attribute=newvalue
实例:
<body>
<img id="image" src="smiley.gif">
<script>
document.getElementById("image").src="landscape.jpg";
</script>
</body>
4.改变HTML样式
document.getElementById(id).style.property=newstyle
<p id="p2">HelloWorld!</p>
<script>
document.getElementById("p2").style.color="blue";
document.getElementById("p2").style.background-color="#ccc";
</script>
注:visibility显示与隐藏文本,值为hidden和visible。
5. 对 HTML 事件做出反应
HTML 事件的例子:
l 当用户点击鼠标时
l 当网页已加载时
l 当图像已加载时
l 当鼠标移动到元素上时
l 当输入字段被改变时
l 当提交 HTML 表单时
l 当用户触发按键时
等等
当事件发生时可以执行 JavaScript;
如用户在 HTML 元素上点击时,可以对 HTML 的onclick事件添加 JavaScript 代码:
onclick=JavaScript
实例:
<script>
function changetext(obj){obj.innerHTML="谢谢!";}
</script>
<h1onclick="changetext(this)">请点击该文本</h1>
onclick是HTML元素的点击事件;
要让HTML元素在某个事件发生(前,时,后)作什么(作什么是动作),首先要先给这个HTML元素添加对应的事件(添加事件),其次再加上你要作的动作(编写JS代码);
1).事件添加方式及onclick事件
a.事件直接加在HTML元素上
<h1onclick="this.innerHTML='谢谢!'">请点击该文本</h1>
b.事件通过JS添加在HTML元素上
<button id="myBtn ">点击这里</button>
<script>
document.getElementById("myBtn").onclick=function(){displayDate()};
</script>
2).onload 和 onunload 事件
onload 和 onunload 事件会在用户进入或离开页面时被触发。
onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
onload 和 onunload 事件可用于处理cookie。
实例:
<!DOCTYPE html>
<html>
<bodyonload="checkCookies()">
<script>
function checkCookies()
{
if (navigator.cookieEnabled==true)
{
alert("已启用cookie")
}
else
{
alert("未启用cookie")
}
}
</script>
<p>提示框会告诉你,浏览器是否已启用cookie。</p>
</body>
</html>
3) .onchange事件
onchange 事件常结合对输入字段的验证来使用,或者其它动作.
实例:
<script>
function myFunction()
{
varx=document.getElementById("fname");
x.value=x.value.toUpperCase();
}
</script>
</head>
<body>
<input type="text"id="fname" onchange="myFunction()">
<p>当您离开输入字段时,会触发将输入文本转换为大写的函数。</p>
4).onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在用户的鼠标移至HTML 元素上方或移出元素时触发函数
实例:
<h1 onmouseover="style.color='red'"onmouseout="style.color='blue'">
例一 请把鼠标移到这段文本上
</h1>
<divonmouseover="mOver(this)" onmouseout="mOut(this)" >
例二 把鼠标移到上面
</div>
<script>
function mOver(obj)
{
obj.innerHTML="谢谢"
}
function mOut(obj)
{
obj.innerHTML="把鼠标移到上面"
}
</script>
5). onmousedown、onmouseup 以及 onclick 事件
onmousedown, onmouseup 以及onclick 构成了鼠标点击事件的所有部分;
l 首先当按下鼠标按钮时,会触发 onmousedown 事件;
l 当释放鼠标按钮时,会触发 onmouseup 事件;
l 最后,当完成鼠标点击时,会触发 onclick 事件.
实例:
<div onmousedown="mDown(this)" onmouseup="mUp(this)"onclick="mClick(this)" style="width:90px;height:20px;">请点击这里</div>
<script>
function mDown(obj)
{
obj.style.backgroundColor="#1ec5e5";
obj.innerHTML="请释放鼠标按钮";
}
function mUp(obj)
{
obj.style.backgroundColor="green";
obj.innerHTML="请按下鼠标按钮";
}
function mClick(obj){ obj.innerHTML="click";}
</script>
6). onfocus、onblur事件
获得和失去焦点事件
实例:
<script>
function focusFun(x)
{
x.style.background="yellow";
}
functionblurFun(x)
{
x.style.background="#fff";
}
</script>
<input type="text" onfocus="focusFun(this)"onblur=" blurFun(this)">
四 JavaScript HTML DOM 元素(节点)
1. 添加节点(HTML 元素)
添加新HTML DOM元素,首先创建该元素(元素节点),然后向一个已存在的元素追加该元素
1) 创建HTML元素
document.createElement(Element)
2) 向elementNode节点内的子元素末追加元素
(向节点的子节点列表的末尾添加新的子节点)
elementNode.appendChild(newElement)
3) 向elementNode节点内某个子元素前插入元素
(在已有的子节点前插入一个新的子节点)
elementNode.insertBefore(new_node,existing_node)
new_node 要 插入新的节点
existing_node 已有节点,在此节点前插入新节点
4) 创建文本节点
document.createTextNode(contents)
实例:
<div id="div1">
<p id="p1">这是一个段落</p>
<p id="p2">这是另一个段落</p>
</div>
<script>
varpara=document.createElement("p");
var node=document.createTextNode("这是新段落。");
para.appendChild(node);
varelement=document.getElementById("div1");
element.appendChild(para);
</script>
2.删除节点(HTML 元素)
如需删除 HTML 元素,您必须首先获得该元素的父元素
删除子节点, 如成功,则返回被删除的节点,否则返回 NULL。
elementNode.removeChild(node)
elementNode父节点 node 子节点
实例一:显示找到父元素,再删除子元素
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>
<script>
varparent=document.getElementById("div1");
varchild=document.getElementById("p1");
parent.removeChild(child);
</script>
实例二:间接通过父元素删除子元素
varchild=document.getElementById("p1");
child.parentNode.removeChild(child);
3. lastChild 属性
lastChild 属性返回文档的最后一个子节点
documentObject.lastChild
4. previousSibling属性
previousSibling属性可返回某节点之前紧跟的节点(处于同一树层级)
如果没有此节点,那么该属性返回 null。
nodeObject.previousSibling
5. nodeType属性
nodeType 属性返回被选节点的节点类型。
elementNode.nodeType
节点编号对应节点名称
|
节点编号 |
节点名称 |
节点编号 |
节点名称 |
|
1 |
Element |
7 |
Processing Instrucion |
|
2 |
Attribute |
8 |
Comment |
|
3 |
Text |
9 |
Document |
|
4 |
CDATA |
10 |
Document Type |
|
5 |
Entity Reference |
11 |
Document Fragment |
|
6 |
Entity |
12 |
Notation |
删除节点实例:
<scripttype="text/javascript">
//检查最后一个节点是否是元素节点
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("/example/xdom/books.xml");
varlastNode=get_lastchild(xmlDoc.documentElement);
vardelNode=xmlDoc.documentElement.removeChild(lastNode);
</script>
注:所有举例均参照于http://www.w3school.com.cn
JavaScript HTML DOM学习记录的更多相关文章
- Javascript之Dom学习
1.简介:DOM是一套对文档的内容进行抽象和概念化的方法.在现实世界里,人们对"世界对象模型"一定不会陌生,当人们用"房子","汽车"等这一 ...
- JavaScript基础知识点学习记录
一.简介: JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如相应用户的各种操作. J ...
- Javascript and DOM学习
1.输出 document.write.(); 2.alert警告 3.confirm消息对话框:当用户点击"确定"按钮时,返回true,取消时,返回false 4.prompt提 ...
- JavaScript学习记录一
title: JavaScript学习记录一 toc: true date: 2018-09-11 18:26:52 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- JavaScript DOM学习总结(一)
DOM 什么是DOM?简单地说DOM是一套对文档内容进行抽象和概念化的方法. W3C给出的DOM定义是这样的:"一个与系统平台和编程语言无关的接口,程序和脚本以通过这个接口动态的访问和修 ...
- Javascript中DOM技术的的简单学习
第十四课DOM技术概述1:DOM概述 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节 ...
- JavaScript学习记录四
title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- JavaScript学习记录三
title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
随机推荐
- 自制Java中的Mutex类
同步问题中,一个很重要的问题是同步的域,什么是同步的域呢?简单以 synchronized 这个关键字来说,就是它所同步的范围.并发编程中很多时候出现的问题没有选好同步范围所导致的.但现有的同步关键字 ...
- Replication--发布属性immediate_sync
在创建发布时,如果选择立即初始化,会将immediate_sync属性设置为true.如果immediate_sync属性为true时,snapshot文件和发布事务及发布命令将一直保留到指定的事务保 ...
- pipeline+sonar
前提需要在项目根目录下新建sonar-project.properties文件,内容如下: # must be unique in a given SonarQube instance sonar.p ...
- 创建第一个MVC专案--初识MVC
MVC1.0正式版2009就上市了,可自己今年才开始去接触,汗颜~ 自己在学的过程中也看过一些文章,很多都是大致介绍的没有连接数据库实现下操作,直至自己买了本后发现MVC有很强大的数据库操作类已封装好 ...
- jenkins+docker+docker machine 远程部署
dotnet publish -c Release docker build -t microtest:1.0 --build-arg microport=1000 -f "$WORKSPA ...
- Windows上传文件到linux 使用winscp
Windows上传文件到linux 使用winscp, winscp下载目录 https://sourceforge.net/projects/winscp/postdownload?source=d ...
- 工作流2013 assign to问题
根据您的确认, 该问题已经通过我们所提供的方案进行修改后测试通过, 问题解决. 以下为该问题的产生原因: SharePoint 2013使用的默认认证机制与2007不一样, 2007使用的是Wind ...
- yaml 配置
yaml文件的作用 yaml是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互. yaml的语法规则 字母大小写敏感: 通过缩进来表示层级关系,同层级元素需左对齐,且 ...
- QTREE5 - Query on a tree V(LCT)
题意翻译 你被给定一棵n个点的树,点从1到n编号.每个点可能有两种颜色:黑或白.我们定义dist(a,b)为点a至点b路径上的边个数. 一开始所有的点都是黑色的. 要求作以下操作: 0 i 将点i的颜 ...
- codis__数据迁移和伸缩容
数据迁移命令 注意点:是迁移到某个 redis-group 而不是某个redis-servers 实例 伸缩容用法 redis 内存等不够用时 增容 : 增加redis-group, 然后迁移使用上 ...