DOM模型
——在dom模型中,文档是一棵树,文档元素、文本和属性都是节点
——所有的属性节点都属于元素节点,文本节点是没有属性的
——css样式本身不是节点,不过也采用了文档树的模型
——dom的工作方式是先加载静态页面,再动态刷新,并不改变网页源码
——在浏览器看来,dom节点树才是文档。我们不是在创建html内容,而是在改变dom节点树
DOM方法
——getAttribute不能用于document,只能用于元素
——setAttribute可以修改任何一个元素的任何一个属性,如果该属性不存在就创建后再赋值
——dom core的api,如getElementById, getElementsByTagName, getAttribute, setAttribute, createElement, createTextNode, appendChild和insertBefore等不是任何一个浏览器的js语句。使用它们而不是其他等价方法的好处就在于可以真正跨平台,独立于具体脚本语言和文档
——element.childNodes返回该元素所有下一层子节点组成的数组。节点的类型有12种,用element.nodeType查看其属性序号
——firstchild和lastchild是dom core认可的缩写。注意,我们想获得的文本的内容常常不是标签的值而是标签第一个子节点的值
——尽量用文本节点+nodeValue而不是标签.value来获得文本的值;如果要访问元素节点的属性,则应使用setAttribute
——nodeName总是返回大写字母
——html dom中有一些专用简写,如document.body,document.form
三层分离
——内容层(xhtml)-表示层(css)-行为层(js) 。一层包裹一层,又相互独立。css的伪类涉及了行为层,而js动态修改dom涉及了内容层,动态修改style涉及了表示层。除非非如此不能达到目的,否则不要这么做
——在分离的行为层为文档添加事件处理总是优于直接写硬链接(直接写硬链接的话,onevent=又优于href=javascript:伪协议)。一般的步骤是:设置默认链接->用js查找元素->添加事件->提取属性->修改页面
——事件处理在装载文档之后在onload事件处理中动态绑定到文档的元素上,class和id都可用来标记。把js分离出来。这样一来,html就不用改动;即使禁用js,也只是少了一些事件处理而已
——“作为一条原则,如果你想用javascript给某个网页添加一些行为,就不应该让你的javascript代码对这个网页的结构有任何依赖。”
——“javascript脚本只应该用来充实文档的内容,要避免使用dom技术来直接插入核心内容。”
——事件处理函数返回false后,浏览器会认为该事件没有发生,不会去执行默认行为
——不要让给标记元素添加class的事情变得跟添加硬链接同样啰嗦,可以用id标记一个上层节点,然后在代码中检测其子节点。代码是可以很灵活的,所以尽量把页面标记搞得简单点。无论如何,代码只用写一次,页面标记却可能重复很多次
——css的属性名中的“-”中在dom的style中要写成Camel式
——写在外部css文件中的style是不能被dom检测到的
——“与其使用dom脚本去直接改变某个元素的样式信息,不如通过javascript代码去刷新这个元素的class属性。”
通用性
——用对象检测而非浏览器嗅探来实现向后兼容,只需要在函数的开头添加一个或一组if语句
——事件处理函数是浏览器间兼容的,比如onclick, onfocus, onblur
——定时器的四个函数也是浏览器间兼容的
——最好选用xhtml而非html,在xhtml中所有标记必须小写,单标签必须有对应的<x></x>或者<x />(“/”前要加个空格)
——document.write和innerHTML都不被xhtml所接受
javascript
——js中的数组很强大,可以混存不同数据类型,还支持用字符串做下标。这实际就支持了散列
css
——“如果你为某个元素设置了一种前景颜色,就应该再为它设置一种背景颜色。”
其他
——用元素属性来保存那些与特定元素相关,又不能声明成全局变量或者局部变量的值非常方便
——逐节点添加文档树还是比较麻烦
——关于sibling的函数一定保证是同一层还是只是简单地在childNode数组中取下一个?
菜鸟读书笔记
对“菜鸟读书笔记”的回应
《JavaScript DOM编程艺术》热门书评
-
通往终点的过程与终点本身同样重要
116有用 7无用 cxa 2006-12-30
半年前,当我对JavaScript还停留在只认识这几个字母的时候,有一天我突然心血来潮,在网上下了DOM Scripting的样章,照着里面的例子写了我平生第一个能让我知所以然JavaScript,在浏览器运行成功,兴奋不已,从此能把学习编程的热情持续半年以上,破了过去只能热一两个星期的记录,它带给...
-
菜鸟读书笔记
28有用 1无用 |53/V> 2007-10-23
DOM模型——在dom模型中,文档是一棵树,文档元素、文本和属性都是节点——所有的属性节点都属于元素节点,文本节点是没有属性的——css样式本身不是节点,不过也采用了文档树的模型——dom的工作方式是先加载静态页面,再动态刷新,并不改变网页源码——在浏览器看来,dom节点树才是文档。我们不是在创建h...
-
我看《JavaScript DOM 编程艺术》
22有用 1无用 琳琳的小狗 2007-01-11
这本书在刚出版的时候,编辑就送了一本给我,可惜那段时间出差在外没能看到,真正到手是4号那天,之前一直关注china-pub上的评论,有网友评价说内容太肤浅,“大失所望,感觉象是喝了碗稀粥,一点实在货都没有”。的确,此书是我有史以来读得最快的一本,三百页,从4号晚上开始看,到第二天下午就看完了,说明写...
-
[第一版]初学者的摘录和感觉
6有用 0无用 银光 2013-02-17
这不是书评,是读第一遍的摘录。[读的是第一版的中文电子书]前言 这是一本讲述一种程序设计语言的书,但它也适合Web设计师阅读。具体地说,本书是为那些喜欢使用CSS和XHTML并愿意遵守编程规范的Web设计师们编写的。 第一章 JavaSc...
-
书名翻译成“编程艺术”有些过了
4有用 0无用 [已注销] 2011-07-01
原书标题并没有以The Art of...开头,翻译成JavaScript DOM编程艺术有些过了,它的定位显然应该是一本入门书籍,而不是TAOCP那样的“圣经”。这本书教会你如何用javascript操纵DOM树,使页面动态化。讲的东西比较杂,HTML5,CSS,AJAX以及各种历史,相比之下ja...
书名: JavaScript DOM编程艺术
作者: [英] Jeremy Keith
出版社: 人民邮电出版社
译者: 王建桥 | 杨涛 | 杨晓云
出版年: 2006年12月
页数: 316
定价: 39.00元
装帧: 简裝本
丛书: 图灵程序设计丛书·Web开发系列
ISBN: 9787115139214