1. 1.动态创建select   
2.  
3.       function createSelect(){   
4.           var mySelect =&ateElement("select");   
5.           mySelect.id = "mySelect";   
6.           document.body.appendChild(mySelect);   
7.       }   
8.  
9. 2.添加选项option   
10.  
11.      function addOption(){   
12.          //根据id查对象,  
13.           var ElementById('mySelect');   
14.          //添加一个选项  
15.           obj.add(new Option("文本",""));    //这个只能在IE中有效  
16.           obj.options.add(new Option("text","value")); //这个兼容IEfirefox  
17.      }   
18.  
19. 3.删除所有选项option   
20.  
21.      function removeAll(){   
22.            var ElementById('mySelect');   
23.            obj.options.length=null;   
24.      }   
25.  
26. 4.删除一个选项option   
27.  
28. function removeOne(){   
29.      var ElementById('mySelect');   
30.      //index,要删除选项的序号,这里取当前选中选项的序号  
31.       var index=obj.selectedIndex;   
32.      ve(index);   
33. }   
34.  
35. 5.获得选项option的值   
36.  
37.      var ElementById('mySelect');   
38.  
39.      var index=obj.selectedIndex; //序号,取当前选中选项的序号  
js教程removechild40.  
41.      var val = obj.options[index].value;   
42.  
43. 6.获得选项option的文本   
44.  
45.      var ElementById('mySelect');   
46.  
47.      var index=obj.selectedIndex; //序号,取当前选中选项的序号  
48.  
49.      var val = obj.options[index].text;   
50.  
51. 7.修改选项option   
52.  
53.      var ElementById('mySelect');   
54.  
55.      var index=obj.selectedIndex; //序号,取当前选中选项的序号  
56.  
57.      var val = obj.options[index]=new Option("新文本","新值");   
58.  
59. 8.删除select   
60.  
61.       function removeSelect(){   
62.             var mySelect =&ElementById("mySelect");   
63.             veChild(mySelect);   
64.      } 


为了便于各位的调试,
我将代码进行了简化,取数据部分我去掉了,各位可修改成自己用的数据
二、说明
现将该设计中,用到的主要技巧列在下面
1。将数据动态填入js的数组
用如下3句话实现
out.print("<script>");
out.print("selprov[330000] = new Array(new Option('',''), new Option('..','goUp'), new Option('杭州地区','330100'), new Option('宁波地区','330200'), new Option('温州地区','330300'));");
out.print("</script>");
具体应用时,可以用循环,将数据不断的 out.print(", new Option(xxx,yyy)");添加进去
2.1。当选择了省份后,将地区信息填入地区列表
主要用了下面这个循环
for(var i=0; i<selprov[hprov.value].length; i++){
 harea.add(selprov[hprov.value][i]);
}
2.2。当选择了地区后,将县市信息填入城市列表(实现方法同上)
4。用了隐含技巧,将3select放入在同一行中的3<td></td>中,
然后用<td >进行隐藏,每次3<td>中,只有一项是可见的
如:当需要地区显示时,用如下js语句
d2.style.display="";
d1.style.display="none";
d3.style.display="none";

三、源代码
<@ page contentType="text/html; charset=GBK" >
<html>
<head>
<title>city</title>
<script language="JavaScript">
var selprov = new Array();
var selarea = new Array();
</script>
<
 out.print("<script>");
 //对每个省的数组添加地区数据
 out.print("selprov[330000] = new Array(new Option('',''), new Option('..','goUp'), new Option('杭州地区','330100'), new Option('宁波地区','330200'), new Option('温州地区','330300'));");
 out.print("selprov[350000] = new Array(new Option('',''), new Option('..','goUp'), new Option('福州地区','350100'), new Option('厦门地区','350200'), new Option('泉州地区','35030
0'));");
 out.print("</script>");
 out.print("<script>");
 //对每个省每个地区的数组添加县市数据
 out.print("selarea[330100] = new Array(new Option('',''), new Option('..','goUp'), new Option('杭州市','330101'), new Option('萧山市','330102'), new Option('余杭市','330102'));");
 out.print("selarea[330200] = new Array(new Option('',''), new Option('..','goUp'), new Option('宁波市','330201'), new Option('余姚市','330202'), new Option('奉化市','330203'));");
 out.print("selarea[350100] = new Array(new Option('',''), new Option('..','goUp'), new Option('福州市','350101'), new Option('福清市','350102'), new Option('xx','350102'));");
 out.print("</script>");
>
<script>
</script>
<script>
function prov_chg()
{
 with (document.all){
  if(hprov.value) {
   var ln = harea.options.length;
   while(ln--) {
    harea.options[ln] = null;
   }
   ln = hcity.options.length;
   while(ln--) {
    hcity.options[ln] = null;
   }
   for(var i=0; i<selprov[hprov.value].length; i++){
    harea.add(selprov[hprov.value][i]);
   }
  }
 }
 if(document.form1.hprov.value != "")
 {
  d2.style.display="";
  d1.style.display="none";
  d3.style.display="none";
 }
 else {
 }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。