DOM

概念

所谓DOM,全称 Docuemnt Object Model 文档对象模型,毫无疑问,此时要操作对象,什么对象?文档对象

在文档中一切皆对象,比如html,body,div,p等等都看做对象,那么我们如何来点击某个盒子让它变色呢?

DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。

解析过程

HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM上的元素节点。然后操作的时候修改的是该元素的属性。

DOM树(一切皆是节点)

整个html文档就是一个文档节点。所有的节点都是Object。

DOM可以做什么
  • 找对象(元素节点)
  • 设置元素的属性值
  • 设置元素的样式
  • 动态创建和删除元素
  • 事件的触发响应:事件源、事件、事件的驱动程序
清楚DOM的结构
  • 获取文档对象:document
  • 获取html:document.documentElement
  • 获取body: document.body
获取其它DOM(事件源)的三种方式
var oDiv1 = document.getElementById("box1");      //方式一:通过id获取单个标签var oDiv2 = document.getElementsByTagName("div")[0];     //方式二:通过 标签名 获得 标签数组var oDiv3 = document.getElementsByClassName("box")[0];  //方式三:通过 类名 获得 标签数组
事件
JS是事件驱动为核心的一门语言
事件的三要素

事件的三要素:事件源、事件、事件驱动程序。

比如,我用手去按开关,灯亮了。这件事情里,事件源是:手。事件是:按开关。事件驱动程序是:灯的开和关。

再比如,网页上弹出一个广告,我点击右上角的X,广告就关闭了。这件事情里,事件源是:X。事件是:onclick。事件驱动程序是:广告关闭了。

谁引发的后续事件,谁就是事件源。

总结如下:

  • 事件源:引发后续事件的html标签。
  • 事件:js已经定义好了
  • 事件驱动程序:对样式和html的操作。也就是DOM。

    代码书写步骤如下:

  • (1)获取事件源:document.getElementById(“box”); //类似与ios语言的UIButton *adBtn = [UIButton buttonWithType:UIButtonTypeCustom];

  • (2)绑定事件: 事件源box.事件onclick = function(){ 事件驱动程序 };

  • (3)书写事件驱动程序:关于DOM的操作

  • 绑定事件的方式
    直接绑定匿名函数
     var oDiv = document.getElementById("box");oDiv.onclick = function () {alert("我是弹出的");};
    
    先单独定义函数,再绑定
     var oDiv = document.getElementById("box");oDiv.onclick = fn;   //注意,这里是fn//单独定义函数function fn() {alert("我是弹出的内容");};
行内绑定
<!--行内绑定-->
<div id="box" onclick="fn()"></div><script type="text/javascript">function fn() {alert("我是弹出的内容");}</script>

转载于:https://www.cnblogs.com/zero1230/p/9960373.html

JavaScript DOM介绍相关推荐

  1. javascript BOM与DOM介绍

    Javascript中bom介绍 IE 3.0 和Netscape Navigator 3.0提供了一种特性- BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作.使用BOM,开发者可以移动窗口 ...

  2. 前端JavaScript(2) --常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍...

    昨日内容回顾 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...

  3. javascript dom追加内容的例子

    javascript dom追加内容的例子 javascript dom追加内容的使用还是比较广泛的,在本文将为大家介绍下具体的使用方法. 例子: <!DOCTYPE html PUBLIC & ...

  4. python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)...

    昨日内容回顾 1.三种引入方式1.行内js <div onclick = 'add(3,4)'></div>//声明一个函数function add(a,b){}2.内接js& ...

  5. java svg 读取dom结构_SVG基础以及使用Javascript DOM操作SVG

    SVG 不依赖分辨率 支持事件处理器 最适合带有大型渲染区域的应用程序(比如谷歌地图) 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快) 不适合游戏应用 Canvas 依赖分辨率 不支持事 ...

  6. JavaScript Dom编程艺术

    当我对JavaScript还停留在只认识这几个字母的时候,有一天我突然心血来潮,在网上下了DOM Scripting的样章,照着里面的例子写了我平生第一个能让我知所以然JavaScript,在浏览器运 ...

  7. 高性能JavaScript DOM编程

    我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和 JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间 ...

  8. JavaScript DOM编程艺术第一章:JavaScript简史

    本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...

  9. JavaScript基础介绍

    JavaScript简单介绍 1.JavaScript的简介 是基于对象和事件驱动的语言,应用与客户端. - 基于对象:提供的对象可直接拿过来使用 - 事件驱动:html做网站静态效果,JavaScr ...

最新文章

  1. Python夺冠,老牌编程语言该走向何方?网友:崩溃
  2. python入门只需20分钟-史上最详细python学习路线-从入门到精通,只需5个月时间...
  3. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载四(使用程序载入事件)...
  4. Microsoft Dynamic CRM 2013安装
  5. 「 每日一练,快乐水题 」504. 七进制数
  6. 验证手机号 身份证 中文名称
  7. 回溯算法(Backtracking Algorithm)之八皇后问题
  8. 《碟中谍5》中惊鸿一瞥的步态识别技术,究其神在哪里?
  9. 【图像转换】基于matlab二维图转三维图【含Matlab源码 465期】
  10. STM32——整形变量转换为字符变量并通过串口发送出去
  11. 血浆/血清RNA提取试剂盒的功能和特色
  12. mssql用户/角色无法查询sys.dm_tran_locks视图;消息 297,级别 16,状态 1,第 1 行 用户没有执行此操作的权限。
  13. 数据挖掘(一)A-Priori
  14. 旁注,跨库,CDN绕过之——旁注
  15. 教你解决路由黑洞5招
  16. 加州伯克利计算机科学录取,全美TOP1-伯克利EECS录取驾到!
  17. java B2B2C源码电子商务平台 -SpringCloud服务相互调用RestTemplate
  18. 年会弹幕文字_企业年会节目(精华版)
  19. TA-Lib C++金融技术分析库使用初体验
  20. turtle绘制图形--正方形、正六边形、叠边形

热门文章

  1. 2017年4月21号课堂笔记
  2. word 论文排版 —— 按指定格式章节的自动编号
  3. jQuery 一些小技巧
  4. UVA 2474 - Balloons in a Box 爆搜
  5. ArcGIS API for Silverlight地图加载众多点时,使用Clusterer解决重叠问题
  6. 分享25个优秀的网站底部设计案例
  7. 83998 连接服务器出错_服务端 TCP 连接的 TIME_WAIT 问题分析与解决
  8. GCC + pthread
  9. android timer后函数继续执行_Android内存异常机制(用户空间)_JE
  10. WdatePicker获取不超过今天的值