对于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,添加新的节点:

  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,删除某个节点元素:

  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,获得焦点时改变颜色,这个是经常用的:

  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,鼠标移动上元素和移开元素:

  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知识!

HTML之DOM的更多相关文章

  1. 关于DOM的操作以及性能优化问题-重绘重排

     写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...

  2. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  3. 页面嵌入dom与被嵌入iframe的攻防

    1.情景一:自己的页面被引入(嵌入)至别人的页面iframe中 if(window.self != window.top){ //url是自己页面的url window.top.location.hr ...

  4. 通俗易懂的来讲讲DOM

    DOM是所有前端开发每天打交道的东西,但是随着jQuery等库的出现,大大简化了DOM操作,导致大家慢慢的“遗忘”了它的本来面貌.不过,要想深入学习前端知识,对DOM的了解是不可或缺的,所以本文力图系 ...

  5. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  6. HTML DOM 对象

    本篇主要介绍HTML DOM 对象:Document.Element.Attr.Event等4个对象. 目录 1. Document 对象:表示文档树的根节点,大部分属性和方法都是对元素进行操作. 2 ...

  7. 重撸js_2_基础dom操作

    1.node 方法 返回 含义 nodeName String 获取节点名称 nodeType Number 获取节点类型 nodeValue String 节点的值(注意:文本也是节点) 2.inn ...

  8. 虚拟dom与diff算法 分析

    好文集合: 深入浅出React(四):虚拟DOM Diff算法解析 全面理解虚拟DOM,实现虚拟DOM

  9. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

  10. jQuery学习之路(2)-DOM操作

    ▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看 ...

随机推荐

  1. QueryRunner(common-dbutils.jar)

    QueryRunner update方法:* int update(String sql, Object... params) --> 可执行增.删.改语句* int update(Connec ...

  2. sed 命令及shell的if语句的运用实例

    if [ -f /etc/syslog.conf ];     #判断文件是否存在thensystest=`sed -n  '/^auth.info/p' /etc/syslog.conf`;    ...

  3. 4,SFDC 管理员篇 - 数据模型 - 基本对象

    Setup | Customize | Object Name | Filed   1, 标准字段定义 standard field:系统字段,不能删除,但是能在页面中remove non-requi ...

  4. Spark Streaming源码解读之生成全生命周期彻底研究与思考

    本期内容 : DStream与RDD关系彻底研究 Streaming中RDD的生成彻底研究 问题的提出 : 1. RDD是怎么生成的,依靠什么生成 2.执行时是否与Spark Core上的RDD执行有 ...

  5. 银行ATM机工作流程模拟编程

    [编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...

  6. win7出现无法连接到代理服务器的错误,不能上网的问题的解决

    今天晚上突然停电,等我打开电脑发现不然上网,用google浏览器出现这个错误: 用IE诊断错误如下: 说是不能连到代理服务器,但是我没有连接到代理服务器啊,但是我的QQ能登,就是不能用浏览器上网,经过 ...

  7. VerbalExpressions ——另类正则表达式

    对于文本处理来说,正则表达式无疑是一个非常强大的工具.但是编写和阅读正则表达式往往就不是那么一件非常愉快的事情了.本文在这里介绍另一种另类的正则表达式——VerbalExpressions,它采用函数 ...

  8. Hibernate对象的状态

    站在持久化的角度, Hibernate 把对象分为 4 种状态: 1. 持久化状态 2. 临时状态 3. 游离状态 4. 删除状态 Session 的特定方法能使对象从一个状态转换到另一个状态. 下面 ...

  9. Linux_09------Linux上系统扫描和安全策略

    先谢慕课网/** * linux系统扫描技术 * * 主机扫描.路由扫描.批量服务扫描.系统安全策略(防SYN和ddos攻击) */ /** * 主机扫描 * ping fping hping * * ...

  10. 更好更快更高效解析JSON说明

    现在来一个实例解析类,直接就把解析JSON到QVariant去了.唯一不足的是没有搞错误处理,具体方法也请各位自行参考json-c的发行文档,这样比较方便叙述,STL或者Boost我都没有认真接触过, ...