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函数库-集合框架
Apr 27 Javascript
Javascript的严格模式strict mode详细介绍
Jun 06 Javascript
js闭包实现按秒计数
Apr 23 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
Mar 29 Javascript
详解vue组件通信的三种方式
Jun 30 Javascript
element-ui多文件上传的实现示例
Apr 10 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
Jul 26 Javascript
详解vue 组件
Jun 11 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 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 URL验证正则表达式
2011/07/19 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
JQuery从头学起第一讲
2010/07/04 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Python SQLite3数据库操作类分享
2014/06/10 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
Python高斯消除矩阵
2019/01/02 Python
在vscode中配置python环境过程解析
2019/09/28 Python
Python sep参数使用方法详解
2020/02/12 Python
车间主管岗位职责
2013/11/14 职场文书
行政经理的岗位职责
2013/11/23 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
企业年检委托书范本
2014/10/14 职场文书
优秀员工事迹材料
2014/12/20 职场文书
小学科学教学计划
2015/01/21 职场文书
2016国庆促销广告语
2016/01/28 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技