《JavaScript DOM编程艺术》真是入门js的神书,非常推荐想入门的去看这本书。本篇文章主要是记录自己学习的一些笔记和代码实例。
一、前五章
前五章主要通过DOM和html以及css创建了个能实现基本功能需求的图片库
主要介绍了js的历史,js的基础语法和DOM的操作和一个简单的图片库的案例研究
1.HTML
1.1图片库案例的第一版html代码,没有什么值得注意的地方。很简单。
|
|
2.CSS
2.1整篇图片库css代码,这里不对css学习做过多总结,css需要另行总结,只是放出代码。
|
|
3.JS
3.1showPic函数
|
|
a.这里接触到了getAttribute()和setAttribute();前者获取元素属性,后者可以获取并修改元素属性值
b.childNodes nodeType和nodeValue三个属性
childNodes属性可以获取任何有一个元素的所有子元素,它是一个包含这个元素所有子元素的数组;如我想获取body元素的所有子元素
1 var body_element = document.getElementsByTagName(“body”)[0];//这里[0]是body的第一个元素整篇html也且只有一个用[0]是获取body元素,不用的话只是获取一个空的数组
2 body_element.childNodes
nodeType 获取元素节点语法结构:node.nodeTye如alert(body_element.nodeType )会显示1;
一般js中只有3种具有实用价值的nodeType属性:元素节点的属性值是1;属性节点的属性值是2;文本节点的属性值是3。
nodeValue 用来改变文本节点的值,它用来得到(或设置)一个节点的值,语法结构:node.nodeValue如p[0].nodeValue这里p是元素但是想要获取文本,那么包含在p元素里面的文本节点是另一种节点,如果想要得到内容那么肯定要求p的第一个子节点的nodeValue,★当然第一个也可以用firstChild也表示 p[0]和p.firstChild是等价的
那么以上这些可以实现一个简单的图片库效果,但是还是存在很多不规范的地方,比如是否支持平稳退化、结构和样式是否分离、是否向后兼容?性能考虑,压缩脚本等都可以考虑进来更好的完善图片库。
==========================我是分割线=================================================================
学习第五章之后,有了图片库改进版。第五章主要强调平稳退化,结构样式分离,向后兼容,性能考虑等最佳实践
1.改进版HTML代码
|
|
取消了行内onclick事件并赋予ul一个id以便统一操作ul下的链接,那么我们需要添加事件处理函数
新建函数prepareGallery将有关操作关联到onclick上
- 函数需要检查浏览器是否理解getElementsByTagName。
- 函数需要检查浏览器是否理解getElementByID。
- 函数需要检查当前网页是否存在id为imagegallery的元素
- 遍历imagegallery元素中的所有链接
- 设置onclick事件,让他在有关链接被点击时完成一下操作:1,将链接作为参数传给showPic函数;2,取消链接的默认行为不让浏览器打开链接
改版后的js代码新增了prepareGallery函数如下所示:
|
|
最后的实际效果如下,点击不同的菜单会有相应的变化: