海报:
通过《DOM启蒙》,读者将学习如何通过文档对象模型(DOM)更有效率地操作HTML,而无需DOM操作库的帮助。作者CodyLindley(jQuery手册)用菜谱风格的代码示例,用演示多种节点对象的工作方式,带你领略现代DOM理念。在过去的十年里,框架简化了DOM的用法,后者因此被开发者尘封在前者之下。本书通过现代浏览器原生的概念与代码,将这些工具带回视线。读者将理解jQuery在DOM脚本编写中扮演的角色,并学习如何在移动应
用和特定浏览器中直接使用DOM编写应用程序。
陈养剑,男,毕业于浙江。大学软件工程系,现就职于阿里妈妈用户体验部门,担任前端工程师有三年余,负责创意及相关工具与服务开发。
“DouglasCrockford在他的《JavaScript语言精粹》一书中给过我们一张理解JavaScript语言内部工作机制的示意图。现在CodyLindley给了我们一张对应文档对象模型。”
——JeremyKeithClearleft.com创始人与技术总监,《DOM脚本编写》作者
前言
序言
第1 章 节点概览
11 文档对象模型(Document Object Model,亦称 DOM)是个由JavaScript
节点对象组成的层次结构/ 树
12 节点对象类型
13 继承自节点对象的子节点对象
14 用于与节点打交道的属性与方法
15 识别节点的类型与名称
16 获取节点的值
17 使用 JavaScript 方法来创建元素与文本节点
18 使用 JavaScript 字符串创建并向DOM 中添加元素与文本节点
19 提取DOM 树中的部分作为JavaScript 字符串
110 使用 appendChild() 与 insertBefore() 向DOM 中插入节点对象
111 使用 removeChild() 与 replaceChild() 来移除与替换节点
112 使用 cloneNode() 来复制节点
113 理解节点集合(即 NodeList 与 HTMLCollection)
114 获取所有直属子节点的列表/ 集合
115 将 NodeList 或者 HTMLCollection 转换成JavaScript 数组
116 遍历 DOM 中的节点
117 使用 contains() 与 compareDocumentPosition() 验证节点在 DOM 树中的
位置
118 判断两个节点是否相同
第2 章 文档节点
21 文档节点概览
22 HTML 文档属性与方法(包括继承的)
23 获取 HTML Document 通用信息(标题、链接、提及者、最后修改时间
及兼容模式)
24 文档子节点
25 document 提供的 <!DOCTYPE>、<html lang="en">、<head> 及 <body>
捷径
26 使用 documentimplementationhasFeature() 探测 DOM 规范/ 特性
27 获取文档中当前聚焦/ 激活节点的引用
28 判断文档或者文档中任何节点得到焦点
29 documentdefaultView 是个到顶部/ 全局对象的捷径
210 使用 ownerDocument 从某一元素取得文档的引用
第3 章 元素节点
31 HTML*Element 对象概览
32 HTML*Element 对象属性与方法(包括继承的)
33 创建元素
34 获取元素的标签名
35 获取元素属性与值的列表/ 集合
36 获取、设置及移除元素的属性值
37 验证元素是否有某一特定属性
38 获取类属性值列表
39 添加与移除类属性中的部分值
310 变换某个类属性值
311 判断类属性值是否含有某一特定值
312 获取与设置 data-* 属性
第4 章 元素节点选取
41 选取特定元素节点
42 选取/ 创建一个元素节点列表(即 NodeList)
43 选取所有的直属子元素节点
44 选取与上下文有关的元素
45 预定义的元素节点选取/ 列表
46 使用 matchesSelector() 验证元素会否被选取
第5 章 元素节点几何量与滚动几何量
51 元素节点尺寸、偏移及滚动概览
52 获取元素相对于 offsetParent 的 offsetTop 及 offsetLeft 值
53 使用 getBoundingClientRect() 获取元素相对于视区的Top, Right, Bottom
及Left 边沿偏移量
54 获取元素在视区中的尺寸(边框 + 填充 + 内容)
55 获取元素在视区中的尺寸(填充 + 内容),不含边框
56 使用 elementFromPoint() 获取视区中某一特定点上最顶层的元素
57 使用 scrollHeight 及 scrollWidth 获取滚动元素的尺寸
58 使用 scrollTop 及scrollLeft 获取并设置从上、左边滚动的距离
59 使用 scrollIntoView() 滚动元素到视区
第6 章 元素节点内联样式
61 样式属性(亦称元素内联 CSS 属性)概览
62 获取、设置及移除单个内联 CSS 属性
63 获取、设置及移除所有内联 CSS 属性
64 使用 getComputedStyle() 获取元素的已计算样式(即包含任何级联样式的
实际样式)
65 使用 class 及 id 属性应用或者移除元素上的 CSS 属性
第7 章 文本节点
71 文本对象概览
72 文本对象与属性
73 空白符创建文本节点
74 创建与注入文本节点
75 使用 data 或 nodeValue 获取文本节点值
76 使用appendData()、deleteData()、insertData()、replaceData() 及
subStringData() 操作文本节点
77 当有多个兄弟文本节点时
78 使用 textContent 移除文本标记并返回所有的子文本节点
79 textContent 与 innerText 的区别
710 使用 normalize() 合并兄弟文本节点成单个文本节点
711 使用 splitText() 分割文本节点
第8 章 DocumentFragment 节点
81 DocumentFragment 对象概览
82 使用 createDocumentFragment() 创建 DocumentFragment
83 添加 DocumentFragment 到实时 DOM
84 使用文档片段上的 innerHTML
85 通过复制将片段所含节点保留在内存中
第9 章 CSS 样式表与 CSS 规则
91 CSS 样式表概览
92 访问 DOM 中所有样式表(即 CSSStyleSheet 对象)
93 CSSStyleSheet 属性与方法
94 CSSStyleRule 概览
95 CSSStyleRule 属性与方法
96 使用 cssRules 获取样式表内的 CSS 规则列表
97 使用 insertRule() 和 deleteRule() 来插入与删除样式表中的 CSS 规则
98 使用 style 属性修改 CSSStyleRule 的值
99 创建新的内联 CSS 样式表
91 0 以编程方式添加外部样式表到 HTML 文档
91 1 用 disabled 属性使样式表失效/ 生效
第10 章 DOM 中的 JavaScript
101 插入与执行 JavaScript 概览
102 JavaScript 默认同步解析
103 使用 defer 推迟外部脚本的下载与执行
104 使用 async 异步下载并执行外部JavaScript 文件
105 使用动态 <script> 元素强制异步加载并解析外部 JavaScript
106 通过给异步 <script> 加 onload 回调从而知道它们何时加载完毕
107 注意含有 DOM 操作的 <script> 的放置
108 获取 DOM 中 <script> 列表
第11 章 DOM 事件
111 DOM 事件概览
112 DOM 事件类型
113 事件流程
114 添加事件监听函数到Element 节点、window 对象及document 对象
115 移除事件监听函数
116 从事件对象中获取事件属性
117 使用 addEventListener() 时监听函数中 this 的值
118 事件调用时取得事件模板而不是所绑定的节点或对象
119 使用 preventDefault() 撤销浏览器默认事件
1110 使用 stopPropagation() 终止事件流程
1111 使用 stopImmediatePropagation() 终止事件流程与相同目标上的其他
事件
1112 自定义事件
1113 模拟/ 触发鼠标事件
1114 事件委托
第12 章 创作domjs :源自jQuery 的灵感,服务于现代
浏览器,这是一个万众期待的DOM 库
121 domjs 概览
122 创建唯一作用域
123 创建 dom() 与 GetOrMakeDom(),全局暴露 dom() 与 GetOrMakeDom
prototype
124 创建传给 dom() 的可选上下文参数
125 依据 params 产生一个持有 DOM 节点引用的对象并返回
126 创建 each() 方法并使它可链式调用
127 创建 html()、append() 及 text() 方法
128 拉 domjs 出来兜兜风
129 总结与 domjs 继续
我创建网站。有时我也创作音乐。多年来,我在有些自认为是创作型的音乐家那里——经常是自学的——注意到一个有趣的行为模式:他们抵触学习任何音乐理论。他们认为,从逻辑上来说,知晓音乐背后的理论会莫名限制他们的创作能力。我从来搞不懂这逻辑(并且我私下认为这是因松懈而找的借口)。依我看,我不觉得任何知识或者启蒙会是坏事。
唉,我在Web设计领域也看到了类似的逻辑。有些设计师不仅不知道如何写HTML与CSS,而且他们坚决拒绝学习。同样的,他们害怕这些知识会在某种程度上限制自己(同样的,我认为这是个自证的借口)。
幸运的是这种态度在前端开发领域还不流行。大多数Web开发者明白学无止境,但就算是对HTML与CSS知识有百科全书般全面认知的开发者,在涉及文档对象模型(DocumentObjectModel)时仍会有知识差距。这情有可原。如果用了类似jQuery的库,你不需要懂得DOM内部工作机制。JavaScript库的意义就在于抽离开浏览器内部的API,并转而提供一个不同的、更好的API。
尽管如此,我认为许多前端开发者觉得他们应该知道表面之下都发生了什么。这是一个优秀极客遇到他们工作所需系统的自然反应。现在,感谢《DOM启蒙》,他们可以一解心头之痒了。
道格拉斯?克罗克福德在他的书《JavaScript语言精粹》中给了我们理解JavaScript语言内部机制的图谱。现在科迪?林得利也给了文档对象模型的相应图谱。以此图谱为武装,你就获得了指引DOM通路与隧道所需的知识。
你或许不能在每个项目中都运用到这些知识,或许选择改用诸如jQuery的类库,但此时就任君抉择了。与其因所知有限必须使用某个类库,不如拥有是否以及何时使用jQuery的决定权。这是种大权在握的感觉,全凭所知所学提供,是真正的启蒙所指。
——杰里米·基思,clearleft。com的创始人与技术监督
《JavaScriptDOM编程艺术》一书的作者
说起来,《DOM启蒙》这本书,对于我这样的前端小白来说,简直是雪中送炭。我之前学习JavaScript,感觉就像在学一门全新的语言,语法、逻辑都得从头开始。而DOM,又像是这门语言中最具象、最实用的一个分支,但又好像总有一层窗户纸隔着,让我看不透。这本书做得特别好的一点是,它从最基础的“什么是DOM”开始,然后一步步构建起来,就像搭积木一样,让我能够清晰地看到每一个部分是如何组装到一起的。它没有使用过多晦涩难懂的术语,而是尽量用通俗易懂的语言来解释每一个概念。我特别喜欢书中讲解如何动态创建和删除元素的章节,这些都是非常基础但又至关重要的操作。而且,它还穿插了一些关于如何让你的DOM操作更“优雅”、更“高效”的小贴士,让我觉得这本书不仅仅是教会我“怎么做”,更教会我“怎么做得更好”。读完这本书,我感觉自己对网页的构成和交互有了更深刻的理解,不再是那个只会跟着教程敲代码的小白了。
评分我必须承认,在接触《DOM启蒙》之前,我对待DOM的态度,就像对待一个庞大而复杂的迷宫,总是在里面小心翼翼地摸索,生怕走错一步就“团灭”。各种节点、属性、方法…… 一大堆名词和API,看得我头大。这本书的优点在于,它没有让我感到被信息淹没。它就像一个经验丰富的向导,一步步地带领我走入这个迷宫,而且不是那种硬塞给你地图,而是让你边走边学,逐渐熟悉每一个转角和捷径。它巧妙地将DOM的各个方面串联起来,让我明白它们之间的内在联系,而不是孤立地记忆。从如何创建和插入元素,到如何遍历和修改,再到如何处理用户交互,每一个部分都讲解得有条理,有重点。尤其令我印象深刻的是,书中对DOM操作的“副作用”进行了细致的分析,让我意识到一些看似微小的操作,在大量执行时可能会带来意想不到的性能问题。这本书让我不再畏惧DOM,而是能够自信地运用它来构建更具响应性和交互性的网页。
评分实话讲,作为一个入了行几年的前端,我对DOM的理解一直停留在“够用就好”的层面。你知道怎么添加class,怎么获取元素,怎么设置样式,但你说让我深入讲讲事件循环是如何影响DOM操作的,或者 gimana 最小化重排重绘,我脑子里可能只有一团浆糊。这本《DOM启蒙》的出现,就像一道光,照亮了我之前模糊不清的认知盲区。它不是那种只告诉你“怎么做”的书,更重要的是它在解释“为什么这么做”。比如,它详细剖析了不同DOM方法的内部机制,让我理解了为什么有些方法效率更高,而另一些则可能导致性能瓶颈。书中的案例设计也非常精妙,很多场景都是我在实际项目中会遇到的,但之前可能都是靠“感觉”去解决。现在,我能够有理有据地去分析问题,找到最优的解决方案。尤其是关于DOM事件模型和冒泡/捕获的讲解,让我茅塞顿开,再也不会被那些看似复杂的事件处理逻辑搞得晕头转向。这本书真的让我从一个“DOM使用者”进化成了一个“DOM理解者”。
评分这本《DOM启蒙》绝对是前端开发者的一场及时雨!我一直觉得DOM操作就像是网页开发中的“筋骨”,虽然基础,但要做到精通却着实不易。市面上关于JavaScript的书籍不少,但很多都侧重于语言本身的语法和高级特性,对于如何巧妙、高效地操纵DOM,以实现流畅的用户交互,往往语焉不详。这本书的出现,恰好填补了这一空白。它没有直接抛出枯燥的概念,而是从最贴近实际应用的角度出发,一步步引导读者理解DOM的本质。我特别喜欢它在讲解过程中使用的那些生动形象的比喻,比如把DOM比作一棵倒置的树,瞬间就让原本抽象的概念变得触手可及。而且,书中对事件委托、DOM渲染优化等这些在实际项目中至关重要的技巧,都进行了深入浅出的剖析,让我受益匪浅。特别是那些代码示例,都非常贴合实际开发场景,并且有详细的解释,让我不仅知道“怎么做”,更理解了“为什么这么做”。读完这本书,我感觉自己在前端开发的内功上有了质的飞跃,现在面对复杂的交互需求,心里更有底气了。
评分我当初买《DOM启蒙》纯属偶然,但没想到它却成为了我学习前端开发过程中一个不可或缺的“宝藏”。在我的印象中,DOM就像是网页背后那个沉默而强大的“管家”,负责一切元素的增删改查,以及响应用户的每一次点击、滚动。但过去,我总是觉得自己在跟这个“管家”打交道时,沟通不够顺畅,总会遇到一些莫名其妙的“bug”。这本书就像是翻译官,用最清晰易懂的语言,帮我 decipher 了这个“管家”的语言。它并没有一开始就堆砌各种API,而是从构建DOM树的原理讲起,让我明白每个元素在树状结构中的位置和关系。然后,它循序渐进地讲解如何通过JavaScript去“找到”这些元素,如何“改变”它们的外观和内容,以及如何“响应”用户的行为。书中那些关于性能优化的章节,更是让我眼前一亮。之前我总是为了实现某个功能而牺牲性能,现在我明白了如何在使用DOM的同时,也能保证页面的流畅运行,这绝对是提升用户体验的关键。它不是那种速成类的书籍,而是真正帮助我建立起扎实的DOM基础,为我后续深入学习前端框架打下了坚实的地基。
评分幸运的是这种态度在前端开发领域还不流行。大多数Web开发者明白学无止境,但就算是对HTML与CSS知识有百科全书般全面认知的开发者,在涉及文档对象模型(DocumentObjectModel)时仍会有知识差距。这情有可原。如果用了类似jQuery的库,你不需要懂得DOM内部工作机制。JavaScript库的意义就在于抽离开浏览器内部的API,并转而提供一个不同的、更好的API。
评分质量不错,用起来很方便,价格比较实惠,单位买的,还可以
评分不错,正版打印清晰
评分很有技术含量的一本书。值得购买。
评分栓了,不划来,太薄,也不精悍
评分书很不错的 凑字数!!!
评分在过去的十年里,框架简化了DOM的用法,后者因此被开发者尘封在前者之下。《DOM启蒙》通过现代浏览器原生的概念与代码,将这些工具带回视线。读者将理解jQuery在DOM脚本编写中扮演的角色,并学习如何在移动应用和特定浏览器中直接使用DOM编写应用程序。
评分dongxi heki xiexie le thank you very much you are good man
评分质量很好,就是有点小贵,只按纸张及印刷成本来说价格虚高。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有