HTML之DOM

对于B/S开发,客户端与服务器端的交互是非常必要的,JavaScript的提出解决了很多问题,AJAX的提出也解决了异步通信的问题,更加为用户着想了。而DOM是其中非常基础的知识,在学习AJAX的同时,我学习了一下DOM的相关操作,这篇重点讲一下HTML DOM的相关内容,其实就是在HTML网页上进行的各种操作。

一,概述: DOM(对象文档模型(Document Object Model)),是W3C组织推荐的处理可扩展置标语言的标准编程接口。DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。也就是说,这是表示和处理一个HTML或XML文档的常用方法。DOM技术是用户页面可以动态的变化,从而大大使页面的交互性增强。但是DOM必须通过JavaScript等脚本语言来进行读取,改变HTML、XHTML以及XML等文档。

简单说就是DOM规定了HTML,XML等的一些规范,使JavaScript可以根基这些规范来进行各种操作。而这些规范我们可以用树来形象的表示:

通过这样的树,我们就可以很快找到我们想要操作的节点,进而进行各种属性,方法,事件等的操作。

二,通过JavaScript对HTML网页内容进行操作:

1,首先需要我们查找要操作的节点:

a,通过id查找:

Eg: varx=document.getElementById("name")

b,通过标签名:

Eg:查找ID为name标签下的所有p标签

varx=document.getElementById("name");
    vary=x.getElementsByTagName("p");

c,通过类名:

Eg:varx=document.getElementsByClassName("name");

注意:这种情况在IE5,6,7,8中无效。(网上这么说,等待实验)

2,修改插好出来的节点的属性,内容,样式等:

首先看一下常用的HTML DOM属性:

a,改变HTML的属性(注意HTML的属性和HTML DOM属性的区分):

Eg:改变<img>元素的src属性:

<script>

document.getElementById("image").src="/i/shanghai_lupu_bridge.jpg";

</script>

b,改变HTML的内容:

Eg:

<script>

document.getElementById("p1").innerHTML="Newtext!";

</script>

c,改变HTML的样式:

<script>

document.getElementById("p2").style.color="blue";

</script>

总之对于HTML各种的修改需要对HTML的各种属性非常熟悉,通过JavaScript来进行各种修改!

三,下边看一下关于节点本身的处理:

首先了解一下节点的相关知识:

父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。看这个图:

1,添加新的节点:

[javascript] view plain copy

print?

  1. <span style="font-size:18px;">  <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <div id="div1">
  5. <p id="p1">这是一个段落。</p>
  6. <p id="p2">这是另一个段落。</p>
  7. </div>
  8. <script>
  9. var para=document.createElement("p");//创建一个标签p节点名为para
  10. var node=document.createTextNode("这是新段落。");//定义节点元素的内容
  11. para.appendChild(node);//将元素和内容联系起来
  12. var element=document.getElementById("div1");//找到节点为div1的节点
  13. element.appendChild(para);//向节点div1中添加新节点para
  14. </script>
  15. </body>
  16. </html>
  17. </span>

2,删除某个节点元素:

[javascript] view plain copy

print?

  1. <span style="font-size:18px;">  <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <div id="div1">
  5. <p id="p1">这是一个段落。</p>
  6. <p id="p2">这是另一个段落。</p>
  7. </div>
  8. <script>
  9. var parent=document.getElementById("div1");
  10. var child=document.getElementById("p1");
  11. parent.removeChild(child);//删除父节点中的子节点child
  12. </script>
  13. </body>
  14. </html>
  15. </span>

上边主要是进行各种方法的处理,涉及到的方法,在这里总结一下:

四,下边我写一下HTML DOM中的一些事件:

首先看一下常见的事件,其实和我们C/S开发的大同小异:

下边我捡两个举一下例子说一下事件的用法:

1,获得焦点时改变颜色,这个是经常用的:

[javascript] view plain copy

print?

  1. <span style="font-size:18px;">  <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script>
  5. function myFunction(x)
  6. {
  7. x.style.background="yellow";
  8. }
  9. </script>
  10. </head>
  11. <body>
  12. 请输入英文字符:<input type="text" onfocus="myFunction(this)">
  13. <p>当输入字段获得焦点时,会触发改变背景颜色的函数。</p>
  14. </body>
  15. </html>
  16. </span>

2,鼠标移动上元素和移开元素:

[javascript] view plain copy

print?

  1. <span style="font-size:18px;">  <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <div
  5. onmouseover="mOver(this)"
  6. onmouseout="mOut(this)"
  7. style="background-color:#D94A38;width:200px;height:50px;padding-top:25px;text-align:center;">
  8. Mouse Over Me
  9. </div>
  10. <script>
  11. function mOver(obj)
  12. {
  13. obj.innerHTML="谢谢你"
  14. }
  15. function mOut(obj)
  16. {
  17. obj.innerHTML="把鼠标指针移动到上面"
  18. }
  19. </script>
  20. </body>
  21. </html>
  22. </span>

综上为HTML DOM通过JavaScript操作HTML页面的基础知识,其实和我们C/S,B/S后台的都大同小异,只不过它是解

决网页上的一些内容而已,有一些新的知识点,但是知识类型,例如属性,方法,事件哈等都是一样的!不过还是非常需要我们在实践中来锻炼的!这篇博客为HTML DOM篇,主要是针对HTML来操作。,下篇,重点学习一下XML DOM知识!

时间: 2024-10-11 00:53:27

HTML之DOM的相关文章

虚拟DOM

DOM(Document Object Model)是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的.如果对前端工作进行抽象的话,主要就是维护状态和更新视图:而更新视图和维护状态都需要DOM操作. 在jQuery出现以前,我们直接操作DOM结构,这种方法复杂度高,兼容性也较差:有了jQuery强大的选择器以及高度封装的API,我们可以更方便的操作DOM,jQuery帮我们处理兼容性问题,同时也使DOM操作变得简单:MVVM使用数据双向绑定,使得我们完全不需要

JS学习--DOM

1.概念 文档对象模型DOM,定义访问和处理HTML文档的标准方法.DOM将HTML呈现为带有元素.属性和文本的树结构(节点树). 2.document.getElementById("id")--获取的是一个元素对象. documment.getElementById("id").innerHTML--才可获取其中的内容. 3.HTML样式 Object.style.property=new style;部分属性: 如: mychar.style.color=&q

高性能WEB开发:DOM编程

我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和Javascript(这里指ECMscript)各自想象为一个岛屿,它们之间用收费桥梁连接,ECMAscript每次访问DOM,都要途径这座桥,并交纳"过桥费",访问DOM的次数越多,费用也就越高.因此,推荐的做法是尽量减少过桥的次数,努力待在ECMAscript岛上.我们不可能不用DOM的接口,那么,怎样才能提高程序的效率? 1.DOM访问与修改 访问DOM元素是

dom方法insertAfter的实现

在dom的原生api中,只用insertBefore,没有insertAfter,借助原有的api,可以模拟一个insterAfter. function insterAfter(newElement,targetElement){ var parent = targetElement.parentNode; if(parent.lastChild == targetElement){ parent.appendChild(newElement); } else{ parent.insertBe

第十章—DOM(0)—NODE类型

DOM1定义了一个node接口,该接口由DOM的所有节点类型实现. 所有的节点都存在这样或那样的关系.在HTML中,head,body可以看出是html的子元素,html是head,body的父元素,而head,body互为同胞元素. 这里要注意一个概念:nodeList 输出: 如下例子: 1 <div id="myDiv"> </div><!-- 此处有空格 --> 2 <script> 3 var div = document.ge

对dom的初步了解

什么叫DOM,DOM是文档对象模型Document Object Model DOM树 : 根结点(document) 父结点(parentNode) 子结点(childNodes) 兄弟结点 兄弟结点 sibling) (sibling) DOM在HTML文档中常见的几种结点类型:1.DOCUMENT_NODE (document)文档根结点类型,该枚举型的值是9. 2.ELEMENT_NODE (element)元素结点类型,该枚举型的值是1.上文中的html, body, div这些结点都

DOM基础(一)

在我们刚刚学JavaScript的时候,就应该听说过,JavaScript是由三部分组成的.分别是ECMAScript,DOM和BOM组成的.ECMAScript是JavaScript的核心,它描述了JavaScript的基本语法和对象,DOM则是描述了处理网页内容的方法和接口,而BOM描述了与浏览器进行交互的方法和接口.在我之前的关于JS入门系列的文章里,就讲了许多关于JavaScript的基本语法和对象,也就是ECMAScript.而在这个DOM系列的文章里,我将会介绍一些关于DOM的基础.

python2.0_s12_day13_javascript&amp;Dom&amp;jQuery

今天主要内容:JavaScriptDomjQuery http://www.cnblogs.com/wupeiqi/articles/5369773.html 今天主要内容大致了解:javascript 1.首先要知道 JavaScript 和 Java 没有半毛钱关系. 2.JavaScript 和python语言 一样 它也是一门语言.对于python语言需要用python解释器解释.而javascript的解释器是浏览器. 3.javascript 能实现什么.javascript就是让我

BOM和DOM

BOM 浏览器对象模型 BOM中的对象 Window对象:是指窗口对象,可通过Window对象的属性和方法控制窗口,例如打开或关闭一个窗口 History对象:指历史页面,通过History对象的属性和方法实现前进后退的功能 Location对象:指地址栏,通过属性的方法控制页面的跳转 Document对象:指网页中的内容,通过属性和方法控制页面元素 1.Window对象的常用方法: open(); close(); alert(); prompt(); confim(); setTimeout

JavaScript实现绑定DOM的定时器插件

问题 使用原生的setTimeout和setInterval仅仅能够实现, 定时执行事件处理函数, 在网页开发中, 往往会出现一种情况,定时器用于定时更新某个页面区域的数据, 往往在页面加载之后, 就启动这个定时器, 往后则间隔执行此定时器. 页面上定时刷新的区域可能会动态消失, 特别是在ajax被广泛使用的今天, 如果定时刷新的区域被删除了, 则定时器材也需要自动清除掉. 此二个接口,如果实现这种效果需要, 自己维护定时器句柄, 并且在处理定时器事件函数的时候, 首先判断 指定的刷新区域是否还