今日最后一讲:(累,可你看了后有什么收获吗?有就继续来,看了这一讲,相信你会有个宏观的了解)
上面讲的document.bgColor我们说.xxx的是方法,其实这样说是很不全面的,在面向对象语言中由点来分开的不光是bgColor就是[color=blue>document对象的一个属性,这样document.bgcolor引用文档的背景色属性。这个似乎很简单,可----(记住,什么事情的背后都一样的不见,做学问绝对不能潜尝辄止!!)看看这个:
document.mailform.address.value吓到了吧,这么长!
别害怕,看看有什么认识的字眼嘛,哈,我看到了form,恩,我们来讲解一下。
上面这个语句是指document对象里一个名为mailform的表单中的address元素的value属性值。这样还是有点乱,我们不妨将它看成“树”来比较容易理解。
通常来说,javascript用树结构来组织一个浏览器窗口里的所有部分和网页上的所有元素(例如表单对象和图象)。首先有一个主要的对象(树干),然后向周围分开很多分支对象(树枝),最后是这些对象的方法和属性(树叶)。在以后你会发现,这叫做文档对象模型(DOM),现在用树做比喻更容易理解这个概念:
form link image
|_________|________|
|
history document location
|_____________|_______________|
|
window
主要对象:(树干)当前浏览器窗口,用window引用;
分支对象:(树枝)历史记录(history),窗口的当前位置(location),窗口中显示当前网页(document;);状态拦值(status)、、、、(还有很多,慢慢来)
更多次分支:每个分支对象后还有很多次分支,我们就不一一列出。
如你所见到的,这棵树从浏览器窗口开始,并由此张出许多分支。不论什么时候,如果
你想访问一棵javascript树,你必须爬上树。
来看看这个例子:
<html><body>
<form name="mailform"><input type="text" name="address"></form>
</body></htm>
在这个例子中,我们要得到表单中文本域的值就用得上上面那个例子了:
document.mailform.address.value
那么你就可以知道value就是address的一个属性,代表address的值咯!~
还记得我们第一个脚本中的变量now吗?我们用他来获得当前的时间值,我们用的是什么?(仔细想想,什么?忘了?算,我心情好,告诉你们:
var now=new Date();
var now=hour.getHours();
那么怎么样获得其他的时间单位呢?(想想就知道,很简单哦!~)
对了就是:
second=now.getSeconds();
minute=now.getMinutes();
month=now.getMonth();
那么年份呢?
year=now.getFullYear();(这里是返回完整的4位数字!要注意哦!)
那么星期几呢?
day=now.getDay();
要注意的是:
当用JavaScript返回是时,返回值是数字,而不是文字。什么意思呢?
看看下面的程序:
<script language="JavaScript">
var now=new Data();
var day=now.getDay();
var dayname;
if (day==0) {
dayname="Sunday";
}
if (day==1) {
dayname="Monday";
}
if (day==2) {
dayname="Tuesday";
}
if (day==3) {
dayname="Wednesday";
}
if (day==4) {
dayname="Thursday";
}
if (day==5) {
dayname="Friday";
}
if (day==6) {
dayname="Saturday";
}
document.write("Today is"+dayname+"<br>");
</script>
如果还不明白的话就去找个帅哥问问,OK?
接下来讲一个重要的事情:你有没有看到脚本中有"=="和"="呢?
为什么回这样呢?两个能换不?肯定不能了。。。
"=="是用来判断两个值是否相等,而"="是用来赋值的,明白不?以后看到谁用混了,那你也不要混了!!
时间转移:
Date对象不仅限于当前时间,也可以针对过去或将来某一特定时间创建一个Date对象。
例如,为2003年10月25日创建Date对象,以下的表达式都是可以接受的:
var then=new Date("October 25,2003");
var then=new Date("October 25,2003 00:00:00");
var then=new Date("Oct 25,2003");
var then=new Date("2003,10,25");
注意,你现在正把一个具体的日期赋给这个新的Date对象。
在JavaScript中,传递给一个对象的信息,不论是字符串、数字或另一个对象,都叫参数。当一个对象(或函数)被赋予一个参数的值时,这个对象就用这个数据来进行运算。
在这个例子中,Date对象用这个参数的值,来为特定的日期创建一个具体的Date对象。(学任何一门语言,我们最重要的是实践,把它应用到事例中才能获得收获,那么)
开始倒记时:
<script language="JavaScript">
var now=new Date();
var then=new Date("2004,1,17");
var gap=then.getTime()-now.getTime();
gap=Math.floor(gap/(1000*60*60*24);
document.write("还有"+gap+"天就过年了");
</script>
用过年的时间减现在的时间,不就是相差的时间吗?
那为什么要用gap=Math.floor(gap/(1000*60*60*24);这个语句呢?
因为我们用时间相减得来的数据是以毫秒做为单位的。那么Math.floor()是做什么用的呢?你随便找个时间算算看,得来的一定是整数吗?不是吧?现在知道它的用处了吧?
随便说一下面向对象的属性和方法。
看看这个:
你.名字="帅哥"; (什么意思?你的名字,是“帅哥”,高兴吧?)
大致有个了解,那这个呢:myCar.color="red";(什么意思呢?自己猜) 那么这个呢:window.location="http://toyoolee.xicp.net"意思就是把window的当前窗口变成http://toyoolee.xicp.net的首页。
从上面你了解到什么了呢?名字,color,location都可以分别说是你,myCar,window的属性,那么方法呢?
看看这个:
你.打西帅(用铁锤); (什么意思?你,用铁锤,打西帅!)
有什么新的认识?(除了西帅该挨打之外呢?)
看看这个:myCar.accelerate(15);(英语不认识?我也不太懂,查半天才知道是加速!)他的意思就是把汽车加速到每小时15公里。
那么:document.write("我是帅哥!");知道什么意思了吧??
方法像函数一样,不过是浏览器的一些指令名。区别在于方法直接和对象想关联,并仅对这个对象进行操作。当然,上面的accelerate一定要和myCar关联起来才有用,我们以后会接触到这里的,不要着急!
最后一句,学习JavaScript一定程度上就是学习和如何控制内部对象的属性和方法来获得你想要的效果。 |