JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系


Posted in Javascript onNovember 15, 2015

区别:

javascript

JavaScript 是因特网上最流行的浏览器脚本语言。很容易使用!你一定会喜欢它的!

JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。

HTML DOM

HTML DOM 是 W3C 标准(是 HTML 文档对象模型的英文缩写,Document Object Model for HTML)。

HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法。

通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。

HTML DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和 VBScript 使用。

联系:

通过 JavaScript,您可以重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目。

要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口。这个入口,连同对 HTML 元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。
Javascript主要是利用HTML DOM去获得、改变、创建HTML元素,从而达到美化页面、操作页面元素的目标。因此,在Javascript中最常见的就是各种各样的HTML DOM元素以及它们各自的属性。除了这些DOM元素外,Javascript有自己的对象,例如数组。

简单说,可以认为Javascript主要是操纵HTML DOM。两者是不一样的。
Javascript是语言,DOM是可以在各种语言中(不仅js,php也有的)动态修改文档的模型。

下面单独拉出JavaScript与DOM的关系给大家详解

JavaScript与浏览器的工作

1.浏览器获取并加载你的页面,从上至下解析它的内容。

 遇到JavaScript时,浏览器会解析代码,检查它的正确性,然后执行代码。

 浏览器还会建立一个HTML页面的内部模型(DOM)。

2.JavaScript继续执行,使用DOM检查页面、完成修改、从页面接受事件,或者要求浏览器从Web服务器获取其它数据。

JavaScript如何与页面交互?

JavaScript是代码,HTML是标记,完全不同的东西

怎么让它们交互呢?

答案是使用文档对象模型(Docunment Object Model,简称DOM)。

DOM的妙处在于:它能够在所有浏览器上提供一种一致的方式,通过代码访问HTML的结构和内容。

1、在浏览器加载一个页面时,浏览器会解析HTML,并创建文档的一个内部模型,其中包含HTML标记的所有元素。

2、JavaScript可以与DOM交互(JavaScript使用DOM创建或删除元素等等)

document是一个反映HTML的对象,通过调用document的方法改变DOM的状态,也就是改变HTML页面

3、JavaScript修改了DOM时,浏览器会随着动态更新页面。

自制DOM

材料:格式正确的HTML5页面,WEB浏览器

做法:

 1、在最上面创建一个document节点

 2、取HTML页面的最顶层元素,在这里就是<HTML>元素,把它作为document的子节点加到DOM中

 3、对于当前元素中嵌套的每一个元素,将该元素作为当前元素的子节点增加到DOM

 4、对于刚增加的元素,执行第三步,重复工作,直到处理完所有元素

HTML页面如下  

<!DOCTYPE html>
 <html lang="helloworld">
 <head>
 <title>DOM</title>
 <meta cherset="utf-">
 <script src="dom.js" ></script>
 </head>
 <body>
 <h>My Dom</h>
 <div id="entry">
  <h>hello</h>
  <p>
  Today, I am making a dom!!!
  </p>
 </div>
 </body>
 </html>

得到的DOM如下图

JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系

Javascript 相关文章推荐
JavaScript高级程序设计 阅读笔记(二十) js错误处理
Aug 14 Javascript
javascript时间自动刷新实现原理与步骤
Jan 06 Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
JavaScript将数字转换成大写中文的方法
Mar 23 Javascript
javascript常用正则表达式汇总
Jul 31 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
Oct 30 Javascript
vue(2.x,3.0)配置跨域代理
Nov 27 Javascript
Vue自定义表单内容检查rules实例
Oct 30 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
Nov 15 #Javascript
JS使用eval解析JSON的注意事项分析
Nov 14 #Javascript
js读取并解析JSON类型数据的方法
Nov 14 #Javascript
基于JS实现PHP的sprintf函数实例
Nov 14 #Javascript
javascript动态生成树形菜单的方法
Nov 14 #Javascript
node.js回调函数之阻塞调用与非阻塞调用
Nov 13 #Javascript
JavaScript在网页中画圆的函数arc使用方法
Nov 13 #Javascript
You might like
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
JavaScript学习历程和心得小结
2010/08/16 Javascript
JS继承 笔记
2011/07/13 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
详解js闭包
2014/09/02 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
js断点调试经验分享
2017/12/08 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
python中的多线程实例教程
2014/08/27 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
python 操作hive pyhs2方式
2019/12/21 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS