1 function selectOption(value,text){
2 this.value=value;
3 this.text=text;
4 }
5
6 function createSelect(selectName,selectOptions,currOptionValue){
7 document.write("<select name="+selectName+">");
8 for (var i=0;i<selectOptions.length;i++){
9 if (selectOptions[i].value==currOptionValue){
10 document.write("<option value='"+selectOptions[i].value+"' selected>"+selectOptions[i].text+"</option>");
11 }else{
12 document.write("<option value='"+selectOptions[i].value+"'>"+selectOptions[i].text+"</option>");
13 }
14 }
15 document.write("</select>");
16 }
17
18 function selectValidityDayTypes(value){
19 var validityDayTypes=new Array();
20 validityDayTypes[0]=new selectOption("","有效期");
21 validityDayTypes[1]=new selectOption("3","三天内");
22 validityDayTypes[2]=new selectOption("15","半个月");
23 validityDayTypes[3]=new selectOption("30","一个月");
24 validityDayTypes[4]=new selectOption("90","三个月");
25 validityDayTypes[5]=new selectOption("180","半年");
26 validityDayTypes[6]=new selectOption("365","一年");
27 validityDayTypes[7]=new selectOption("1000","长期");
28 createSelect("validityDay",validityDayTypes,value);
29 }
这是在某网站下载的一个js文件中的一个片段,该段js很容易看懂,但从中却使我学习到一点:通过建立对象的属性来将多维数组变为一维数组。
其中思想是,将第二维声明为一个类,然后将该维中的每个数组项设为该类的属性,这样既使数组易于理解,更易于使用和管理。
这个例子中将多个select选项使用数组形式表示出来,每个选项option又包括值和显示文字两部分。这里又可以使用数组来表示,但通过建立selectOption类来将值和显示文字设定为该类的属性来管理,这样操作和理解起来就容易的多了。
同时也学习到:
对于网页重复性较多的内容应该写成一个模块(函数或类),然后只需输入不同的内容来显示内容即可,而不用重复写入一些内容,如select等。
以后需要加强自己的面向对象的思维习惯了,这样才能将一些复杂的问题变为简单问题来解决。