标题：JavaScript DOM编程艺术
基本信息
原书名： DOM Scripting: Web Design with JavaScript and the Document Object Model
原出版社： Apress  作者： （英）Jeremy Keith  
译者： 杨涛 王建桥 杨晓云
丛书名： 图灵程序设计丛书·Web开发系列
出版社：人民邮电出版社
ISBN：7115139214
上架时间：2006-12-14
出版日期：2007 年1月
开本：16开
页码：300
版次：1-1
内容简介
本书讲述了javascript和dom的基础知识，但重点放在dom编程技术背后的思路和原则：预留退路、循序渐进和以用户为中心等，这些概念对于任何前端web开发工作都非常重要。本书将这些概念贯穿在书中的所有代码示例中，使你看到用来创建图片库页面的脚本、用来创建动画效果的脚本和用来丰富页面元素呈现效果的脚本，最后结合所讲述的内容创建了一个实际的网站。
本书适合web设计师和开发人员阅读。
随着ajax的兴起，javascript再一次成为炙手可热的技术。然而，在历史上，它并不是一直这么幸运，由于主流浏览器之间的不兼容，以javascript为核心的dhtml曾经昙花一现，很快被人遗忘。
俱往矣，如今的网页设计已经翻开了新的一页。在css彻底改变了web页面布局的方式之后，万维网联盟跨浏览器的dom标准的制定，使javascript终于突破瓶颈，成了大大改善网页用户体验的利器。
本书在简洁明快地讲述javascript和dom的基本知识之后，通过几个实例演示了大师级的网页开发技术，并透彻阐述了一些至关重要的 javascript编程原则和最佳实践，包括预留退路、循序渐进和以用户为中心等。读者可以非常直观地加以领悟，迅速使自己的编程技术更上一层楼。
作者简介
Jeremy Keith 国际知名的Web设计师，Web标准计划（）成员，DOM Scripting任务组负责人之一。除本书外，他还正在撰写众所期待的《Bulletproof Ajax》一书（中文版将由人民邮电出版社出版）。可以通过其个人网站adactio与他联系。
目录
第1章 javascript简史 1 
1.1　javascript的起源 2 
1.2　浏览器之争 3 
1.2.1　dhtml 3 
1.2.2　浏览器之间的冲突 4 
1.3　制定标准 5 
1.3.1　浏览器以外的考虑 5 
1.3.2　浏览器之争的结局 6 
1.3.3　新的开始 6 
1.4　小结 7 
第2章 javascript语法 9 
2.1　准备工作 9 
2.2　语法 11 
2.3　语句 11 
2.4　变量 13 
2.4.1　数据类型 15 
2.4.2　数组 17 
2.5　操作 20 
2.6　条件语句 22 
2.6.1　比较操作符 23 
.2.6.2　逻辑操作符 24 
2.7　循环语句 25 
2.7.1　while 25 
2.7.2　do...while 26 
2.7.3　for 27 
2.8　函数 27 
2.9　对象 31 
2.9.1　内建对象 32 
2.9.2　宿主对象 33 
2.10　小结 33 
第3章 dom 35 
3.1　文档：dom中的“d” 35 
3.2　对象：dom中的“o” 35 
3.3　模型：dom中的“m” 36 
3.3.1　节点 38 
3.3.2　getelementbyid()方法 42 
3.3.3　getelementsbytagname()方法 44 
3.4　趁热打铁 46 
3.4.1　getattribute()方法 46 
3.4.2　setattribute()方法 48 
3.5　小结 49 
第4章 案例研究：javascript美术馆 51 
4.1　编写标记语言文档 52 
4.2　编写javascript函数 54 
4.2.1　dom之前的解决方案 55 
4.2.2　showpic()函数的代码清单 56 
4.3　javascript函数的调用 56 
4.4　对javascript函数进行功能扩展 59 
4.4.1　childnodes属性 59 
4.4.2　nodetype属性 60 
4.4.3　在html文档里增加一段描述性文本 61 
4.4.4　用javascript代码改变元素的文本内容 62 
4.4.5　nodevalue属性 63 
4.4.6　firstchild和lastchild属性 63 
4.4.7　利用nodevalue属性刷新元素的文本内容 64 
4.5　小结 68 
第5章 javascript编程原则和良好习惯 69 
5.1　不要误解javascript 69 
5.1.1　不要归罪于javascript 70 
5.1.2　flash的遭遇 71 
5.1.3　质疑 72 
5.2　预留退路 72 
5.2.1　“javascript:”伪协议 74 
5.2.2　内嵌的事件处理函数 74 
5.2.3　有何不好 74 
5.3　向css学习 75 
5.4　分离javascript 78 
5.5　向后兼容性 80 
5.6　小结 82 
第6章 案例研究：javascript美术馆改进版 83 
6.1　快速回顾 84 
6.2　解决“预留退路”问题 84 
6.3　解决“分离javascript”问题 85 
6.3.1　添加事件处理函数 86 
6.3.2　进行必要的检查 87 
6.3.3　创建必要的变量 89 
6.3.4　创建循环 90 
6.3.5　完成必要的操作 91 
6.3.6　完成javascript函数 91 
6.3.7　把多个javascript函数绑定到onload事件处理函数上 92 
6.4　javascript函数的优化：不要做太多的假设 94 
6.4.1　不放过每个细节 97 
6.4.2　键盘浏览功能 99 
6.4.3　慎用onkeypress事件处理函数 100 
6.4.4　把javascript与css结合起来 102 
6.5　dom core和html-dom 105 
6.6　小结 106 
第7章 动态创建html内容 109 
7.1　document.write()方法 110 
7.2　innerhtml属性 111 
7.3　dom提供的方法 114 
7.3.1　createelement()方法 115 
7.3.2　appendchild()方法 116 
7.3.3　createtextnode()方法 117 
7.4　重回“javascript美术馆” 121 
7.4.1　insertbefore()方法 123 
7.4.2　“javascript美术馆”二次改进版 127 
7.5　小结 131 
7.6　下章简介 132 
第8章 充实文档的内容 133 
8.1 不应该做的事情 133 
8.2 把“不可见”变成“可见” 134 
8.3 原始内容 135 
8.4 xhtml文档 137 
8.5 css 138 
8.6 javascript代码 139 
8.6.1 显示“缩略词语表” 139 
8.6.2 显示“文献来源链接表” 152 
8.6.3 显示“快速访问键清单” 158 
8.7 小结 161 
8.8 下章简介 162 
第9章 css-dom 163 
9.1 三位一体的网页 163 
9.1.1 结构层 163 
9.1.2 表示层 164 
9.1.3 行为层 164 
9.1.4 分离 165 
9.2 style属性 165 
9.2.1 样式信息的检索 167 
9.2.2 设置样式信息 172 
9.3 何时该用dom脚本去设置样式信息 174 
9.3.1 根据元素在节点树里的位置来设置样式信息 174 
9.3.2 根据某种条件来设置样式信息 178 
9.3.3 对事件做出响应 182 
9.4 classname属性 184 
9.5 小结 188 
第10章 用javascript实现动画效果 191 
10.1 何为动画 191 
10.1.1 位置 192 
10.1.2 时间 194 
10.1.3 抽象化 198 
10.2 实用的动画 205 
10.2.1 问题的提出 205 
10.2.2 问题的解决 207 
10.2.3 css 208 
10.2.4 javascript代码 210 
10.2.5 与变量的作用域有关的问题 214 
10.3 改进动画效果 216 
10.4 最后的优化 219 
10.5 小结 224 
第11章 学以致用：javascript网站设计实战 225 
11.1 案例背景介绍 225 
11.1.1 原始材料 226 
11.1.2 网站的结构 226 
11.1.3 网页的结构 227 
11.2 页面视觉效果设计 228 
11.3 css 229 
11.4 颜色 231 
11.4.1 布局 232 
11.4.2 字型 234 
11.5 xhtml文档 236 
11.6 javascript脚本 236 
11.6.1 当前页面的标识 238 
11.6.2 javascript动画 242 
11.6.3 内部浏览 247 
11.6.4 javascript美术馆 251 
11.6.5 改进表格 254 
11.6.6 改进表单 259 
11.7 小结 268 
11.8 下章简介 268 
第12章 展望dom脚本编程技术 269 
12.1 web的现状 269 
12.1.1 web浏览器 270 
12.1.2 web设计师 271 
12.1.3 三条腿的凳子 272 
12.2 ajax技术 274 
12.2.1 xmlhttprequest对象 275 
12.2.2 ajax技术的爆发 278 
12.2.3 循序渐进：如何运用ajax技术 279 
12.2.4 ajax技术的未来 281 
12.3 web应用 282 
12.4 小结 283 
附录 dom方法和属性 285 
第2版
图书信息  作者：基思(Jeremy Keith) (作者), 桑布尔斯(Jeffrey Sambells) (作者), 魏忠 (合著者), 杨涛 (译者), 王建桥 (译者), 杨晓云 (译者), 等 (译者) 
出版社: 人民邮电出版社; 第1版 (2011年4月1日) 
外文书名: DOM Scripting:Web Design with JavaScript and the Document Object Model,Second Edition
丛书名: 图灵程序设计丛书·Web开发系列 
平装: 286页 
正文语种: 简体中文 
开本: 16 
ISBN: 7115249997, 9787115249999 
条形码: 9787115249999 
产品尺寸及重量: 23.4 x 18.6 x 1.6 cm ; 499 g内容简介《JavaScript DOM编程艺术(第2版)》内容简介：JavaScript是Web开发中最重要的一门语言，它强大而优美。无论是桌面开发，还是移动应用。JavaScript都是必须掌握的技术。W3C的DOM标准是开发Web应用的基石。已经得到所有现代浏览器的支持，这使得跨平台Web开发成了一件轻松惬意的事。
《JavaScript DOM编程艺术(第2版)》是超级畅销书的升级版，由倡导Web标准的领军人物执笔，揭示了前端开发的真谛，是学习JavaScript和DOM开发的必读之作。
《JavaScript DOM编程艺术(第2版)》在简洁明快地讲述JavaScript和DOM的基本知识之后，通过几个实例演示了专业水准的网页开发技术，透彻阐述了平稳退化等一批至关重要的JavaScript编程原则和最佳实践，并全面探讨了HTML5以及jQuery等JavaScript库。读者将看到JavaScript、HTML5和CSS如何协作来创建易用的、与标准兼容的Web设计，掌握使用JavaScript和DOM通过客户端动态效果和用户控制的动画来加强Web页面的必备技术;同时，还将对如何利用库提高开发效率有全面深入的理解。 
编辑推荐《JavaScript DOM编程艺术(第2版)》：Amazom超级畅销书最新
释放JavaScript和DOM编程的惊人潜力
涵养HTML5及jQuery 
媒体推荐本书不愧为经典。文笔清新,深入浅出,不知不觉让你掌握优秀的编程原则,明白为什么要遵守标准。
——Slashdot
我要隆重推荐本书。它前所未有地演示了DOM脚本编程的真正潜力。无论你是JavaScript新手还是专家,本书都绝对值得你拥有。
——Garrett Dimon,Digital-Web-com杂志专栏作家 
作者简介作者：（英国）基思（Jeremy Keith） （加拿大）桑布尔斯（Jeffrey Sambells） 译者：杨涛 王建桥 杨晓云 等 合著者：魏忠
Jeremy Keith，国际知名的Web设计师，Web标准项目组成员，DOM Scripting任务组负责人之一，任职于Web咨询公司Clearleft。除本书外，还著有HTML5 for Web Designers、Bulletproof Ajax。可通过其个人网站adactio-com与他联系。
Jeffrey Sambells，资深平面设计师，Web开发人员，创办了软件公司We-Create并担任研发总监。除本书外，还著有《JavaScript高级程序设计》和 Beginning Google Maps Applications with PHP and Ajax等多部畅销书。 
目录第1章 JavaScript简史 1
1.1 JavaScript的起源 1
1.2 DOM 2
1.3 浏览器战争 3
1.3.1 DHTML 3
1.3.2 浏览器之间的冲突 3
1.4 制定标准 4
1.4.1 浏览器以外的考虑 4
1.4.2 浏览器战争的结局 5
1.4.3 崭新的起点 5
1.5 小结 6
第2章 JavaScript语法 8
2.1 准备工作 8
2.2 语法 10
2.2.1 语句 10
2.2.2 注释 10
2.2.3 变量 11
2.2.4 数据类型 14
2.2.5 数组 16
2.2.6 对象 18
2.3 操作 19
2.4 条件语句 21
2.4.1 比较操作符 22
2.4.2 逻辑操作符 23
2.5 循环语句 24
2.5.1 while循环 24
2.5.2 for循环 25
2.6 函数 26
2.7 对象 29
2.7.1 内建对象 30
2.7.2 宿主对象 31
2.8 小结 31
第3章 DOM 32
3.1 文档:DOM中的“D” 32
3.2 对象:DOM中的“O” 32
3.3 模型:DOM中的“M” 33
3.4 节点 35
3.4.1 元素节点 35
3.4.2 文本节点 35
3.4.3 属性节点 36
3.4.4 CSS 36
3.4.5 获取元素 38
3.4.6 盘点知识点 42
3.5 获取和设置属性 43
3.5.1 get Attribute 43
3.5.2 set Attribute 44
3.6 小结 45
第4章 案例研究:JavaScript图片库 46
4.1 标记 46
4.2 JavaScript 48
4.2.1 非DOM解决方案 49
4.2.2 最终的函数代码清单 50
4.3 应用这个JavaScript函数 50
4.4 对这个函数进行扩展 52
4.4.1 child Nodes属性 53
4.4.2 node Type属性 54
4.4.3 在标记里增加一段描述 54
4.4.4 用JavaScript改变这段描述 55
4.4.5 node Value属性 56
4.4.6 first Child和last Child属性 56
4.4.7 利用node Value属性刷新这段描述 57
4.5 小结 60
第5章 最佳实践 61
5.1 过去的错误 61
5.1.1 不要怪罪JavaScript 61
5.1.2 Flash的遭遇 62
5.1.3 质疑一切 63
5.2 平稳退化 63
5.2.1 “javascript:”伪协议 64
5.2.2 内嵌的事件处理函数 65
5.2.3 谁关心这个 65
5.3 向CSS学习 66
5.3.1 结构与样式的分离 66
5.3.2 渐进增强 67
5.4 分离JavaScript 68
5.5 向后兼容 70
5.5.1 对象检测 70
5.5.2 浏览器嗅探技术 71
5.6 性能考虑 72
5.6.1 尽量少访问DOM和尽量减少标记 72
5.6.2 合并和放置脚本 73
5.6.3 压缩脚本 73
5.7 小结 74
第6章 案例研究:图片库改进版 75
6.1 快速回顾 75
6.2 它支持平稳退化吗 76
6.3 它的JavaScript与HTML标记是分的吗 77
6.3.1 添加事件处理函数 77
6.3.2 共享onload事件 82
6.4 不要做太多的假设 84
6.5 优化 86
6.6 键盘访问 88
6.7 把JavaScript与CSS结合起来 90
6.8 DOM Core和HTML-DOM 93
6.9 小结 94
第7章 动态创建标记 96
7.1 一些传统方法 96
7.1.1 document. write 96
7.1.2 inner HTML属性 98
7.2 DOM方法 101
7.2.1 create Element方法 101
7.2.2 append Child方法 102
7.2.3 create Text Node方法 103
7.2.4 一个更复杂的组合 105
7.3 重回图片库 107
7.3.1 在已有元素前插入一个新元素 108
7.3.2 在现有方法后插入一个新元素 109
7.3.3 图片库二次改进版 111
7.4 Ajax 114
7.4.1 XML Http Request对象 115
7.4.2 渐进增强与Ajax 119
7.4.3 Hijax 120
7.5 小结 121
第8章 充实文档的内容 122
8.1 不应该做什么 122
8.2 把“不可见”变成“可见” 123
8.3 内容 123
8.3.1 选用HTML、XHTML还是HTML5 124
8.3.2 CSS 126
8.3.3 JavaScript 127
8.4 显示“缩略语列表” 127
8.4.1 编写display Abbreviations函数 128
8.4.2 创建标记 130
8.4.3 一个浏览器“地雷” 135
8.5 显示“文献来源链接表” 138
8.6 显示“快捷键清单” 143
8.7 检索和添加信息 146
8.8 小结 147
第9章 CSS-DOM 148
9.1 三位一体的网页 148
9.1.1 结构层 148
9.1.2 表示层 148
9.1.3 行为层 149
9.1.4 分离 150
9.2 style属性 150
9.2.1 获取样式 151
9.2.2 设置样式 156
9.3 何时该用DOM脚本设置样式 158
9.3.1 根据元素在节点树里的位置来设置样式 158
9.3.2 根据某种条件反复设置某种样式 161
9.3.3 响应事件 165
9.4 class Name属性 167
9.5 小结 171
第10章 用JavaScript实现动画效果 172
10.1 动画基础知识 172
10.1.1 位置 172
10.1.2 时间 175
10.1.3 时间递增量 175
10.1.4 抽象 178
10.2 实用的动画 184
10.2.1 提出问题 184
10.2.2 解决问题 186
10.2.3 CSS 187
10.2.4 JavaScript 189
10.2.5 变量作用域问题 192
10.2.6 改进动画效果 193
10.2.7 添加安全检查 196
10.2.8 生成HTML标记 198
10.3 小结 200
第11章 HTML5 201
11.1 HTML5简介 201
11.2 来自朋友的忠告 203
11.3 几个示例 204
11.3.1 Canvas 205
11.3.2 音频和视频 209
11.3.3 表单 215
11.4 HTML5还有其他特性吗 219
11.5 小结 219
第12章 综合示例 220
12.1 项目简介 220
12.1.1 原始资料 220
12.1.2 站点结构 220
12.1.3 页面结构 221
12.2 设计 222
12.3 CSS 223
12.3.1 颜色 225
12.3.2 布局 226
12.3.3 版式 228
12.4 标记 229
12.5 JavaScript 230
12.5.1 页面突出显示 231
12.5.2 JavaScript幻灯片 235
12.5.3 内部导航 239
12.5.4 JavaScript图片库 242
12.5.5 增强表格 245
12.5.6 增强表单 249
12.5.7 压缩代码 263
12.6 小结 264
附录 JavaScript库 265