1.DOM简介

DOM(Document Object Model)即文档对象模型,是HTML和XML文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使得从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将web页面和脚本或程序语言连接起来。

My Document

Header

Paragraph

1.1.DOM和JavaScript

DOM是一套标准编程接口,可以用JavaScript来访问,可以对文档结构进行改变,例如:可以设置内容,可以修改样式,但是,DOM并不是JavaScript的一部分,也可以用其他语言来使用

1.2.ECMAScript 和 JavaScript 的关系

JavaScript的创造者为 Netscape 公司,它们将JavaScript 提交给国际标准化组织 ECMA(前身为欧洲计算机制造商协会),希望这种语言能够成为国际标准,1967年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,因此,ECMAScript是JavaScript的规格,JavaScript是ECMAScript的实现,在日常场合是可以互换的,就像汉语中的普通话,以北京语音为标准因,以北方方言为基础方言,制定了一套标准,在实际生活中会出现各种方言普通话,例如:四川普通话带点儿四川方言,山西普通话、山东普通话...

1.3.BOM/DOM/Node/W3C/CommonJs/ECMAScript

ECMAScript规范中,包含了词法、类型、上下文、表达式、声明、方法、对象等语言的基本要素

在实际应用中,JavaScript的表现能力取决于宿主环境中的API支持程度,例如:BOM、DOM提供的API,可以让JavaScript具有操作页面元素、修改元素样式、打开某个窗口等能力

浏览器就是JavaScript的宿主环境,BOM和DOM在浏览器端,由W3C标准组织来规范

在Node环境中,根据CommonJS规范,让JavaScript拥有了更多的能力,例如:文件操作、数据库操作、网络传输等,因此,JavaScript也可以用来做后台开发

1.4.DOM节点

1.4.1.什么是节点?

DOM 节点是指在HTML、XML文档中的每个成分都是一个节点。 整个文档就是一个文档节点,每个HTML、XML标签是一个元素节点。

1.4.2.节点之间的关系

根节点(祖先节点): HTML 父节点:相对于子节点来说的,当某个节点包含了子节点,这个节点就是其子节点的父节点 子节点:相对于父节点来说的,某个元素下的所有节点,称为这个元素的子节点 兄弟节点:当两个节点处于同一个父节点下,这两个节点可以互称兄弟节点 注意:兄弟节点可以有多个,父节点只有一个,根节点为html,是祖先节点,也只有一个

1.4.3.节点类型

nodeType 属性表示节点类型,用来区分不同类型的节点,例如:文本、元素、注释等

语法:

var type = node.nodeType;

螺钉课堂

var oDiv = document.getElementById("box")

console.log(oDiv.nodeType)

节点类型通常在过滤节点的时候,用来做判断,例如:

Document

#wrap div{

width: 50px;

height: 50px;

background-color: #009f95;

margin-bottom: 20px

}

点击

1111
1111
1111
1111
1111

var oWrap = document.getElementById("wrap")

var oBtn = document.getElementById("btn")

oBtn.onclick = function(){

var aNodes = oWrap.childNodes

for(var i=0;i

if(aNodes[i].nodeType == 1){

aNodes[i].style.backgroundColor = "red"

}

}

}

1.4.4.节点名字

可以通过nodeName获取节点的名字,具体应用实例:

Document

添加

  • 1111

var oBtn = document.getElementById("btn")

var oIpt = document.getElementById("ipt")

var oUl1 = document.getElementById("ul1")

oBtn.onclick = function(){

var oLi = document.createElement("li")

oLi.innerHTML = oIpt.value

oUl1.appendChild(oLi)

}

oUl1.onclick = function(ev){

var ev = ev || event

if(ev.target.nodeName == "LI"){

ev.target.style.backgroundColor = "red"

}

}

bom event周期_DOM-BOM-EVENT(1)相关推荐

  1. bom event周期_MRP运行五大步骤逻辑详解(含动态安全库存、安全时间、批量计算方法、BOM表扩展方法的详细说明)...

    MRP运行五大步骤逻辑详解(含动态安全库存.安全时间.批量计算方法.BOM表扩展方法的详细说明) 作者:袁云飞(AlbertYuan)- 微信号yuanalbert 以下内容均为原创,希望对初学者有一 ...

  2. 再谈BOM和DOM(1):BOM与DOM概述

    JavaScript的实现包括以下3个部分: ECMAScript(核心):描述了JS的语法和基本对象. 浏览器对象模型(BOM):与浏览器交互的方法和接口 文档对象模型 (DOM):处理网页内容的方 ...

  3. oracle planning bom,OracleERP表结构--BOM模块

    BOM模块常用表结构 表名: bom.bom_bill_of_materials 说明: BOM清单父项目 BILL_SEQUENCE_ID NUMBER 清单序号(关键字) ASSEMBLY_ITE ...

  4. Event 系列: jquery event 源码

    /* * author:prk * date:2008-08-17 * comment:analyse of jquery event * */ jQuery.event = { // add 事件到 ...

  5. php如何使用代码清除bom,使用php清除bom示例

    核心代码 function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charse ...

  6. 【BOM精讲】BOM 入门基本常识

    Bom定义: Bom里面包含的对象,其中Part.Item.Component都可以称之为部件或者组件. 但在真正系统里面Item一般不称之为组件或者部件,仅代表行号,0010.0020.0030 之 ...

  7. 物料BOM和生产订单BOM的区别

    物料BOM和生产订单BOM的区别 [@more@] 一般企业生产部在SAP创建生产订单的时候,就会产生一个生产订单BOM,这里的生产订单BOM是读取的物料BOM. 由于其它原因,需要修改成品的某几个零 ...

  8. UTF-8带BOM和不带BOM的转换

    UTF-8带BOM和不带BOM的转换 标签:Linux UTF-8 BOM [问题] 在linux下如果你使用过的编码不是utf-8你可以使用enca进行转换,然而转换过后的情况是不带bom的uft- ...

  9. HTML使用vue的 event,vue-js 特殊变量$event常识

    背景 如果我们要阻止默认事件,在 chrome 等浏览器中,我们可能要写一个: event.preventDefault(); 而在 IE 中,我们则需要写: event.returnValue = ...

  10. PCB BOM也能如此好看?图形化交互式BOM工具Interactive Html Bom使用分享

      发现一个超级有用的BOM生成工具.他有该有的元件清单列表,有PCB二维图,能用交互视图来定位器件在PCB中的位置,不用担心手焊调试时,很难找到元件的位置.生成的BOM是.html文件,用浏览器打开 ...

最新文章

  1. 使用openpyxl处理表格数据
  2. Ueditor配置及在项目中的使用
  3. 应用程序的并行配置不正确_阿里架构师:天天高并发,达不到百万以上并发都不叫高并发...
  4. Java 9 将采用新的版本字符串格式
  5. java 获取年 两位,java使用jxl读取日期年份只显示前两位的解决方法
  6. 80-450-020-原理-索引-索引失效与优化
  7. 【Spring-tx】事务。
  8. 华为路由器交换机配置命令大整合,非常全,附pdf下载!
  9. iphone图片编辑画笔_苹果手机截屏后怎么编辑,这么实用你可一定要知道
  10. 计算机网络结构示意图,常见的五种计算机网络拓扑结构分析
  11. 相机靶面尺寸详解+工业相机选型
  12. leaflet 加载高德地图
  13. 最高20天年假,入职即带股票!2021微软校园招聘 | 空中宣讲会倒计时!
  14. 4.7 Case Study on Sandy Bridge C…
  15. 运行supervisorctl错误提示【FATAL或BACKOFF 】Exited too quickly (process log may have details)问题总结
  16. golang牛牛算法规则与聊天功能
  17. mysql格式化日期的函数_MySql格式化日期函数
  18. 能ping通百度,但是上不了网的解决方法
  19. python Graphillion简介
  20. 力扣 2042检查句子中地数字是否递增

热门文章

  1. 用python玩转数据第四周答案_用Python玩转数据_章节答案
  2. centos6 lnmp安装mysql_centos6.5安装lnmp环境
  3. java遍历本地文件夹_JAVA遍历一个文件夹中的所有文件的小例子
  4. mysql server 2012_Windows server 2012 搭建mysql双主
  5. USB转串口 FT232/PL2303/CH340 比较
  6. 视图插入数据_数据库DQL、DML、DDL、DCL 详解
  7. python接口测试第二期_python2 接口测试一般方法.
  8. 调整png的不透明度_悄悄告诉你:11个高质量PNG素材来源,再也不用抠图了~
  9. 基于stm32、0.96寸OLED实现的俄罗斯方块小游戏(详细源码注释)
  10. IPC\DVS\DVR与NVR之间的区别