假如现在要做一个极为简单的课程表,就是从一个javascript的object里面读取数据,然后往html里面的表格填充内容。数据假如是长这样的:
var tt = {
mondayClasses:["英语","英语","数学","数学","基础护理","基础护理","",""],
tuesdayClasses:["思修","思修","护理研究","护理研究","","","",""],
wednesdayClasses:["生物","生物","物理","物理","基础护理","基础护理","",""],
thursdayClasses:["化学","化学","","","营养学","营养学","",""],
fridayClasses:["物理","物理","数学","数学","基础护理","基础护理","实验课","实验课",
}
大致就是一副类似json的样子,然后我们html里面的table元素是长成下面这样的
<table>
<tr>
<th>节数</th>
<th>星期一</th>
<th>星期二</th>
...
</tr>
<tr>
<td>第一节</td>
<td id="mon1st"></td>
<td id="tue1st"></td>
...
</tr>
<tr>
<td>第二节</td>
<td id="mon2nd"></td>
<td id="tue2nd"></td>
...
</table>
非常挫的一种写法,而且坑很大,回头慢慢填。之前我在复唧唧上看过一篇文章1 ,是说教学呢,要先让学的人头痛,然后给他阿司匹林人家才会感激我,嗯,所以坑是必要的。
回头看开头的javascript对象,这个对象存储了课程表里面周一到周五每一天从第一节到第八节课所有课程的安排。
- 先看
mondayClasses:["",""...,""]
这一行,这是对象里面的一个属性。如果说js里面对象是一个很大的柜子,那么属性就是柜子里面的一个小格子。这个叫做mondayClasses(起这个名字是因为需要放周一的课程安排)的小格子里面的内容是一个数组(注意[]
)。另外这里没有=
,因为在对象里面设置一个属性是用:
。数组的内容就是周一的课程安排,从第一节一直到第8节(因为这里面有8个元素啊) - 那么等到用的时候,也就是要设置某一天某一节课的时候,就要用到一个html元素的id了(不知道id和元素是什么的请到w3cschool里面html教程看一下),用到的语句是
document.getElementById("wed8th")
。这一句的意思是从document这个对象(也就是指你的网页)里面寻找一个id是wed8th的元素,这个元素被存进了一个叫做wed8thCell的变量里面等候使用 - wed8thCell现在代表着我们表格里面第9行第4列的单元格(因为这个单元格的id就是wed8th啊),现在通过设置这个对象(在javascript里面,所有的html元素都会被视为一种对象, 应该是属于document object model吧。这个跟开头那个长的像json的对象又不一样哦)的innerHTML属性就可以改变
<td id="wed8th"></td>
中间的空白内容了(也就是>和</td中间的内容) - 下面的就是从获得一个特定单元格到设置这个单元格的代码,只要把这种过程重复上
5*8=40
次就可以完成了。
var mon1stCell = document.getElementById("mon1st")
mon1stCell.innerHTML=tt.mondayClasses[0]