2天无事,在家系统的看了看javascript方面的知识.(当然目前还不包含Ajax,时间不够嘛.)
感觉如果理解好js的大体上的一个树型结构,然后再分段一次学习透彻是很好学的.
首先我来描述一下js的整体结构..
从浏览器的角度讲,总体分为2大类:COM和DOM COM是客户对象模型(最顶层的对象是window). DOM就是我们常接触的文档对象模型
(最顶层的对象是document, 但是document又是属于window的一个属性.有点懊口,也就是说,window是浏览器的老大,其他的都是跟他混的,类似于java的object)
从继承的角度讲,在最上层的是Window(也就是我们的浏览器,可以理解为红兴社)
document, location, history, sreech, navigator (可以理解为各个分区 ,比如波澜街,北角等)
其中用的最多的要数document,其次是window,然后是location,history,navigator,和sreech
通常我们写脚本的百分之80都是用的document对象...
根据我的理解,document可以把他看做一个页面,我们在这个页面写html代码的时候是用的标签,实际上标签里封装的就是类似与document的一些操作各种属性出效果的这样一段代码.那么我 们就可以这样认为,平时我们所写的html就是document,(当然这个地方我不敢肯定,我只是说可以这样理解)只是html的标签把一些类似与js脚本的操作封装了,我们看不到而已,那既然这样的话就可以针对html标签的不足,自己增删改查一些样式或者一些客户端需要的事件和逻辑了.
客户端里的所有的标签都是一个对象,如果修改的话只需要把对象取过来,然后直接再js里更改,实际上就相当于在修改某个标签在这个页面的样式了.例如<input id = ""> <select id = ""> <form id = ""> <image id = ""> <span id = "">等....
全部都可以取到.document对象下面有3个方法帮助程序员取得这些对象并修改.
getElementById():通过id取得对象
getElementsByTagName():通过标签取得对象集合
getElementsByName():通过id取得对象集合(通常用在checkbox上)
document可以直接控制的属性就是body.(刚不是说document就是一个页面吗,所以body是它中间的一员)
document直属的对象数组有:links[](<a href>对象个数), forms[](form表单对象个数), anchors[](锚点对象个数) ,images[](图片标签对象个数), all[](所有对象);
上面这些是一级对象,也就是document下面直属的嫡系方法,属性和事件,(就是可以直接用doucment.操作的)..-_-!!
然后下面的一些其他对象比如:table, form, select, input ,iframe等...这些用的比较多的对象里面又会存在自己的嫡系方法,属性,事件,例如table的rows[](行集合)cells[](列集合) insertRow()方法(赠加一行)等...其他的所有的对象都类似与table. 也就是一个数型结构,从window是老大,然后 document, location, history, sreech, navigator 是老二.(有点不雅)
form,table,select 这写属于document对象下面的老三(因为document和其他老二对象是同一级,所以只能属于document下的老三),然后table下面的rows[]可以看做是和select下的option一排的老四.cells[]这一排的就是老五了(造孽).
(可以理解为洪兴社的铜罗湾的等级)
同理history对象的下面后继无人,所以只能当光秆司令了(可以理解为洪兴社的屯门的老大,但是没小弟)
其他几个对象就不一一介绍了,同理,如果把握住这个树型原则来学思路是很清晰的,而且很容易举一反三.
至于window,上面说过可以理解为洪兴社.window下面的直属对象可以理解为直接为洪兴社做事的一群人,相当于蒋天养的嫡系..
document这些就是各个区的老大了,下面的就是这些老大的嫡系..不直接听从于洪兴社的.不知道这样解释是不是清楚一点,看过古惑仔的肯定一看就明白了.
至于一些核心对象(Array, Number, Date, Math等..),目前还没想到用什么来比喻,不过突然觉得 大飞当初还不是正式老大的时候,带了很多小弟,类似与自由人吧.但是跟洪兴混...
感觉如果理解好js的大体上的一个树型结构,然后再分段一次学习透彻是很好学的.
首先我来描述一下js的整体结构..
从浏览器的角度讲,总体分为2大类:COM和DOM COM是客户对象模型(最顶层的对象是window). DOM就是我们常接触的文档对象模型
(最顶层的对象是document, 但是document又是属于window的一个属性.有点懊口,也就是说,window是浏览器的老大,其他的都是跟他混的,类似于java的object)
从继承的角度讲,在最上层的是Window(也就是我们的浏览器,可以理解为红兴社)
document, location, history, sreech, navigator (可以理解为各个分区 ,比如波澜街,北角等)
其中用的最多的要数document,其次是window,然后是location,history,navigator,和sreech
通常我们写脚本的百分之80都是用的document对象...
根据我的理解,document可以把他看做一个页面,我们在这个页面写html代码的时候是用的标签,实际上标签里封装的就是类似与document的一些操作各种属性出效果的这样一段代码.那么我 们就可以这样认为,平时我们所写的html就是document,(当然这个地方我不敢肯定,我只是说可以这样理解)只是html的标签把一些类似与js脚本的操作封装了,我们看不到而已,那既然这样的话就可以针对html标签的不足,自己增删改查一些样式或者一些客户端需要的事件和逻辑了.
客户端里的所有的标签都是一个对象,如果修改的话只需要把对象取过来,然后直接再js里更改,实际上就相当于在修改某个标签在这个页面的样式了.例如<input id = ""> <select id = ""> <form id = ""> <image id = ""> <span id = "">等....
全部都可以取到.document对象下面有3个方法帮助程序员取得这些对象并修改.
getElementById():通过id取得对象
getElementsByTagName():通过标签取得对象集合
getElementsByName():通过id取得对象集合(通常用在checkbox上)
document可以直接控制的属性就是body.(刚不是说document就是一个页面吗,所以body是它中间的一员)
document直属的对象数组有:links[](<a href>对象个数), forms[](form表单对象个数), anchors[](锚点对象个数) ,images[](图片标签对象个数), all[](所有对象);
上面这些是一级对象,也就是document下面直属的嫡系方法,属性和事件,(就是可以直接用doucment.操作的)..-_-!!
然后下面的一些其他对象比如:table, form, select, input ,iframe等...这些用的比较多的对象里面又会存在自己的嫡系方法,属性,事件,例如table的rows[](行集合)cells[](列集合) insertRow()方法(赠加一行)等...其他的所有的对象都类似与table. 也就是一个数型结构,从window是老大,然后 document, location, history, sreech, navigator 是老二.(有点不雅)
form,table,select 这写属于document对象下面的老三(因为document和其他老二对象是同一级,所以只能属于document下的老三),然后table下面的rows[]可以看做是和select下的option一排的老四.cells[]这一排的就是老五了(造孽).
(可以理解为洪兴社的铜罗湾的等级)
同理history对象的下面后继无人,所以只能当光秆司令了(可以理解为洪兴社的屯门的老大,但是没小弟)
其他几个对象就不一一介绍了,同理,如果把握住这个树型原则来学思路是很清晰的,而且很容易举一反三.
至于window,上面说过可以理解为洪兴社.window下面的直属对象可以理解为直接为洪兴社做事的一群人,相当于蒋天养的嫡系..
document这些就是各个区的老大了,下面的就是这些老大的嫡系..不直接听从于洪兴社的.不知道这样解释是不是清楚一点,看过古惑仔的肯定一看就明白了.
至于一些核心对象(Array, Number, Date, Math等..),目前还没想到用什么来比喻,不过突然觉得 大飞当初还不是正式老大的时候,带了很多小弟,类似与自由人吧.但是跟洪兴混...