很久没有更新关于JavaScript方面的内容,不是已经遗忘,而是不知道该如何下手写。对于不甚确定的内容总是有些担心写出的内容是否对错,而且对js这块内容还是没有入门,有些概念的认识和把握还难以消化。
讲到JavaScript,不得不提的就是DOM,DOM是“Document Object Model”(文本对象模型)的首字母缩写。document(文档)是整个DOM操作的基础,没有他就无从谈起,我们遇到的每个web页面,在浏览器加载的过程中,DOM也就随之生成。object(对象)是一种独立的数据集合,熟悉其他类程序语言的朋友应该对这个概念很熟悉,用生活中的例子,比如像动物、植物等某种同类数据的集合就构成一个对象。model(模型)是提供页面的一种表现形式,类似于一个国家或者城市的地图。
上面讲到DOM中的模型,可以套用家谱树的形式来解释,很巧妙,却很强大,让人很容易就能理解。下面看一个例子:
提示:你可以先修改部分代码再运行。
简单的页面,清晰的结构,用家谱树表现如下:

从上图我们可以看出,html是整个家族的根,称之为根节点,接下来有两个分枝,他们是存在于同一层且互不包含,我们称他们彼此为兄弟,他们有共同的父元素,也有各自不同的子元素,所以他们本身又是其他元素的父元素。所以,所有有联系的元素之间都是通过这种层级关系表现出来的。
上面我们提到了一个名字,节点,那什么是节点呢?这个名词源于网络理论,代表着网络中的一个连接点。引入一个原子的概念,我们知道一切事物都是有原子构成的,而原子就是所代表事物的节点。在DOM中也有类似情况,文档即是由节点构成的集合。
DOM中节点,大致可以分为三类:
元素节点:构成页面框架和结构的各种标签,例如<body>、<p>、<ul>等。一个特殊的节点就是上面我们提到的<html>,因为他是没有被任何标签所包含的,所以叫根节点。
文本节点:包含在元素节点的内容,上例中,元素<p>中包含的“Don’t forget to buy this stuff.”,他就是一个文本节点。需要注意的是,文本节点一定包含在元素节点中,但并不是每一个元素节点都有文本节点。
属性节点:元素节点中起描述作用的属性部分。几乎所有标签中都有title这个属性,可以利用这个属性都该标签进行描述说明。
- <p title="a gentle reminder">Don't forget to buy this stuff.</p>
上例中title="a gentle reminder"即是一个属性节点。

上面都只是介绍了一些关于DOM的基本概念,接下来,我们就学习几种常用的DOM方法。
1、getElementById()方法
这个方法将返回一个与给定Id属性值的元素节点相对应的对象。需要注意:a、JavaScript是区分大小写的,所以一定要注意方法中的大小写区别;b、Id要写在括号()中,且用单引号或双引号括起来;c、方法操作返回的类型是对象,可以通过typeof来判断。
2、getElementsByTagName()方法
该方法将通过指定的元素节点返回一个数组对象,每个对象分别对应着文档中与给定元素节点相同的元素。他虽然和getElementById类似,但有个本质的区别:getElementById返回的是一个对象,而getElementsByTagName返回的是一组对象,这个用Element(Elements)单、复数就很好的进行区别。
3、getAttribute()方法
该方法是一个函数,通过这个函数,可以查找出指定元素节点的各种属性。不过getAttribute()方法不能通过document对象调用,而必须通过一个元素节点来调用。
4、setAttribute()方法
之前我们介绍的方法只能用来检索信息,而setAttribute方法与之本质的区别就是可以将检索出的属性节点的值进行修改。setAttribute方法需要与getAttribute()方法结合使用,二者之间的区别是:getAttribute()方法只有一个参数,用来检索属性节点;而setAttribute方法则需要两个参数,一个是属性节点,一个是该属性节点要修改的值。
介绍了这个多内容,大家应该觉得很枯燥,具体怎样才能使用这些方法呢?下面就来实现一个常见的图片浏览的效果:
提示:你可以先修改部分代码再运行。
很神奇吧!其实只是短短的三句代码,就实现了css难以完成的效果,这大概就是JavaScript的魅力吧!!
不觉又写了很多内容,总结起来,概括为:一个概念、两张图标、三类节点、四种方法。其实这些都是基础中的基础,但对自己来说,整理的过程,也是一种加深的学习,如果对朋友们有帮助当然更让我高兴。欢迎朋友们交流,如果有什么错误还望指正!
发表评论有 16 位朋友发表了评论
物品CSS到现在都没搞定。先收藏吧。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
少杰的最新博文:惊天动地:百度10小时收录了我的新博客 xvsj.org
物品CSS?什么东东?你还做推广?
只能学习了,在专业人士
面前
JS我什么时候也要系统学一下,这篇不错,收藏了。
哈哈,过奖啦,一起学习吧!
我回来啦 但我不是超人
红色之行收获不小吧!
讲的很专业,支持下你
呵呵,见笑啦,俺也是刚开始学呢
我都看不懂。上面的人说是基础。悬殊啊。。。
学无止尽呐
是很基础的东西~~我也复习一下~~
以后有啥问题还得向你请教呢
嗯,这是最基础的内容,我也复习一下~~
写的很基础,我的java scp一直都很烂,导致现在遇到些问题都要查些资料才能解决。
我也是刚开始学呢