案例研究:JavaScript 图片库
改变图片的src属性的两种方式:
1,setAttribute方法是“第1级DOM”的组成部分,它可以设置元素节点的任意属性。
2,element.src = source;这是在“第1级DOM”出现之前的方法,现在也有效。
“第1级DOM”的优势是可移植性好,那些老方法只适用于Web文档,DOM则适用于任何一种标记语言。
事件处理函数
当点击某个链接时,我希望留在这个网页面而不是转到另一个窗口,代码如下:
<a href="http://www.example.com" onclick="showPic(this); return false ;">Click</a>
当点击这个链接时,因为onclick事件处理函数所触发的Javascript代码返回的值是false,所以这个链接的默认行为没有被触发.
childNodes属性
childNodes属性可以用来获取任何一个元素的所有子元素。由childNodes属性返回的数组包含所有类型的节点,而不仅仅是元素节点。事实上,文档里几乎每一样东西都是一个节点,甚至连空格和换行符都会被解释为节点,而它们全都包含在childNodes属性所返回的数组中。
但每个节点都有nodeType属性。nodeType属性总共有12种可取值,但其中仅有3种具有使用价值:元素节点的nodeType属性值是1,属性节点的nodeType属性值是2,文本节点的nodeType属性值是3.
如果想改变一个文本节点的值,那么就用DOM提供的nodeValue属性。
数组元素childNodes[0]有个更直观易读的同义词,可以把它写成firstChild;DOM还提供了一个与之对应的lastChild属性。
示例:
<p id="description">Choose an image</p>
首先创建一个变量来存放它:
var description = document.getElementById("description");
description.nodeValue的返回值是null。<p>元素本身的nodeValue属性是一个空值,而如果想要得到<p>元素包含的文本的值,要用description.childNodes[0].nodeValue或者description.firstChild.nodeValue