DOM & BOM
API
Application Programming Interface 应用编程接口
engine [ˈɛndʒɪn]
目录
- DOM
- 相关概念
- 操作DOM
- BOM
- 嵌入 JS 脚本
- 问答
JS 的能力
由宿主(浏览器、Node平台)决定
- 数学运算
- 操作字符串
- ……
有了 DOM 和 BOM 之后
- 操作网页元素
- 弹出提示框
- console.log、console.dir
- localStorage、File API、Canvas
- ……
DOM
文档对象模型 Document Object Model,有 Specification
定义:文档对象模型 (DOM) 是HTML和XML文档的编程接口
说人话:想要操作网页,就要使用DOM
分为:
- HTML DOM
- XML DOM
DOM Tree
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1></h1>
<p><a href=""></a></p>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
DOM 相关概念
-
节点(Node)
- 文字(空格)也是节点
- 注释也是节点
- 获取节点
- document.getElementById
- document.getElementsByTagName
- document.querySelector
- document.querySelectorAll
- IE 的一些方法和一些不常用的方法
DOM 相关概念
-
nodeName
-
nodeType(注意 node 和 element 的区别)
-
ownerDocument
-
nextSibling, previousSibling, parentNode, parentElement
-
childNodes,firstChild,lastChild
-
textContent
DOM 相关概念
- appendChild(),hasChildNodes()
- cloneNode(),insertBefore(),removeChild(),replaceChild()
- contains(),compareDocumentPosition(),isEqualNode()
DOM 相关概念
- NodeList
- childNodes 动态集合
- document.querySelectorAll 静态集合
- HTMLCollection
- document.links 动态集合
DOM 相关概念
Element对象的方法
http://javascript.ruanyifeng.com/dom/node.html#element
- 选择子元素
- querySelector方法
- querySelectorAll方法
- getElementsByTagName方法
- getElementsByClassName方法
- 属性相关方法
- hasAttribute()
- getAttribute()
- setAttribute()
- removeAttribute()
- focus、click
BOM
浏览器对象模型,没有 Spec
- 弹出新的浏览器窗口
- 移动、关闭浏览器窗口以及调整窗口大小
- 提供 Web 浏览器详细信息的定位对象
- 提供用户屏幕分辨率详细信息的屏幕对象
- 对 cookie 的支持
- IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象
BOM 提供的 API
将 JS 嵌入到页面中
- 写在标签上(inline script)
- 内部脚本
- 外部文件
Script 标签的工作原理
- 浏览器一边下载HTML网页,一边开始解析
- 解析过程中,发现script标签
- 暂停解析,网页渲染的控制权转交给JavaScript引擎
- 如果script标签引用了外部脚本,就下载完再执行,否则直接执行
- 执行完毕,控制权交还渲染引擎,恢复往下解析HTML网页
完。
下节内容:
- DOM Event
- jQuery 简介
DOM
By 方方
DOM
- 1,774