《JavaScript DOM 编程艺术》 ——笔记

  以下只是个人的读书笔记,限于本人的知识局限性,可能有偏差。请见谅,欢迎指出问题。



  1.本书的名字就是《JavaScript DOM 编程艺术》,那么首先什么是DOM呢?

  DOM-Document Object MOdel,按字面上的意思翻译就是文本对象模型。“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”

  它将网页抽象成一个节点树:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>文档标题</title>
</head>
<body>
    <a href="">我的链接</a>
    <h1>我的标题</h1>
</body>
</html>

  以上的代码就可以用下面的树来表示

  可以看出树是由节点与线条组成的。其中节点又分为三类,分别是元素节点(element node)、文本节点(text node)和属性节点(attribute node)(*不只有3类)。而线条表达了节点之间的父子关系,处于线条起始的节点是结束节点的父节点。<html>就是<head>和<body>的父元素。<head>与<body>之间则是兄弟关系。

  2.什么是平稳退化?

  平稳退化就是在当js、css等文件失效时网页也能表达出最基本的含义。我们虽然做了许多努力做出了一个精美的网页,但是却无法确保用户的网络环境是否良好。如果网页的内容与js强耦合,那么当js传递的过慢或阻塞时那么网页会奔溃掉。要做到平稳退化,需要遵守渐进增强与分离js。

  3.文中的一些坑

  P129

<abbr title="Document Object Model"><em>DOM</em></abbr>
 var key = current_abbr.lastChild.nodeValue;
 console.log(key);       //null

  可以发现key无法获取到值,是因为nodeValue属性设置或返回指定节点的节点值。而current_abbr.lastChild获取的是<em>元素节点。

    if (!current_abbr.lastChild.hasChildNodes()) {
      var key = current_abbr.lastChild.nodeValue;
    }else{
      var key = current_abbr.lastChild.lastChild.nodeValue;
    };

  可以先判断下有没有子元素再取值,暂时还没想到其他方法。。。。

  还有在最后一个综合事例中,最后一个ajax事例中。用火狐没有问题,IE的话会在一直停在载入动画中,是用chrome就会提示出错,我chrome版本号是 42.0.2311.90 m

  chrome错误信息如下

XMLHttpRequest cannot load file:///C:/Users/Administrator/Desktop/chapter12/domsters/submit.html. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

Uncaught TypeError: Cannot read property ‘length‘ of null

Uncaught NetworkError: Failed to execute ‘send‘ on ‘XMLHttpRequest‘: Failed to load ‘file:///C:/Users/Administrator/Desktop/chapter12/domsters/submit.html‘.submitFormWithAjax @ global.js:438thisform.onsubmit @ global.js:367
Navigated to file:///C:/Users/Administrator/Desktop/chapter12/domsters/submit.html



《JavaScript DOM 编程艺术》 ——笔记

时间: 2024-10-13 02:25:50

《JavaScript DOM 编程艺术》 ——笔记的相关文章

SQL 笔记 By 华仔

-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据库的大小的方法 笔记3-徐 设置数据库自动增长注意要点 笔记4-徐 模仿灾难发生时还原adventurework数据库 示例 stopat 笔记5-徐 检查日志文件不能被截断的原因 笔记6-徐 检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题 笔记7-徐 SQLSERVER日志记录

SQL笔记---多表左联

这是实际场景当中的一个例子,拿出来分析总结思路. -- SQL 查询 --SELECT  orderQuery.Rk_SkuCode ,        orderQuery.SkuName,        SUM(ISNULL(orderQuery.OrderTotal, 0))        - SUM(ISNULL(removeQuery.RemoveTotal, 0))        - SUM(ISNULL(pickQuery.PickTotal, 0))        - SUM(IS

SQL笔记---分页

随用随想,随用随记. 通过实际应用掌握SQL语句. 一. SQL分页 1. 第一种方法:利用ID大于多少进行筛选 SELECT TOP 20        *FROM    dbo.WMS_StockWHERE   ( Rk_SkuCode > ( SELECT MAX(Rk_SkuCode)                         FROM   ( SELECT TOP 40                                            *           

《HeadFirst SQL》笔记

规范化 0 约束 1 原子性 2 第一范式 1NF 3 数据模式 4 依赖 5 联接查询 6 交叉联接(AKA 笛卡尔联接,叉积) 7 内联接 8 子查询 9 外联接 10 自联接 11 集合 12 事务 13 ACID 14 管理事务 15 常用语句 16 注意 17 规范化 约束 NOT NULL UNIQUE PRIMARY KEY DEFAULT FOREIGN KEY:引用父表的某个唯一值引用完整性:插入外键列的值必须已经存在于父表的来源列中 --创建外键 create table i

SQL笔记1:SELECT及SELECT高级应用

T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:GROUP BY 7.1:GROUP BY ALL 7.2:HAVING 8:SELECT字句技术 8.1:使用DISTINCT消除重复值 8.2:返回拼接的结果 8.3使用INTO字句 9:子查询 9.1:子查询类型 9.2:代替表达式的查询 9.3:多层嵌套 10:比较使用 EXISTS 和 IN 的

金典 SQL笔记(6)

page223-索引 --利用SQL 语句创建索引 --CREATE INDEX 索引名称on 表名(字段 ,字段, 字段字段n) --索引名称必须为唯一的,字段 ,字段, 同意一个到多个 --范例为T_person 表中给FName创建索引索引名为 idx_person_name CREATE INDEX idx_person_name ON T_Person (FName) --删除索引 --drop index 表名索引名 DROP INDEX T_person.idx_person_na

Mybatis 项目开发实际常用SQL笔记总结

parameterType 和 resultType parameterType:单个参数用String,多个参数用map resultType:   可以是 Integer.String.Object    <select id="countGroupMasterByUid" parameterType="String" resultType="Integer">      SELECT              COUNT(id)

sql笔记/分页存储过程

[email protected]c#中进行++操作可以是整数或小数,sql中只能对整数进行++操作.char类型 适合存储长度波动较小不回收效率高varchar 类型 适合存储长度波动较大可以回收nchar代表unicode 存储内容包括汉字时候考虑加n SQL语句特点1不区分大小写2没有双引号所有字符串都包含在单引号3没有逻辑相等,逻辑相等和赋值一样都是用=4没有bool值得概念,但是在视图中可以输入true/false5也有关系运算符.6也有逻辑运算符 &&-- and || --o

sql笔记

1. 看下面sql,重点有两个,一个是distinct  ,一个是树形结构查询 select DISTINCT t.unit_code from t_unit_relation t where t.corp_tn='jiaozhougongan' start with t.unit_code='0001' connect by prior t.unit_code = t.unit_upcode 分析: ① distinct:去重复值 ② 树形结构查询,这个博客:http://www.cnblog

HeadFirst SQL 读书摘要

数据库都是用 圆柱形表示的. 数据库中包含表 表中包含行和列 行又叫记录record,  列又叫 字段field 创建数据库 create database mypipe_l; 选择数据库 use mypipe_l; 创建表 create table doughnut( name VARCHAR(10), type VARCHAR(6) ); 查看表 desc doughnut; 删除表 drop table doughnut; 插入数据 insert into doughnut (name,