javascript实现省市县联动

在页面中添加三个下拉框:

  <select id="co" "onchang(this)">      //onchange当前内容改变时触发事件
   <option value="-1">-请选择-</option>
   <option value="0">河南省</option>
   <option value="1">山东省</option>
   <option value="2">河北省</option>
   <option value="3">浙江省</option>
  </select>
  <select id="city" "changcity(this)">
   <option value="-1">-请选择-</option>
  </select>
  <select id="xian">
   <option value="-1">-请选择-</option>
  </select>

提供value值,当做在选项中选择内容的索引
在js代码中,创建数组存放市和县的信息

var arr=new Array(4);                       //使用new创建
   arr[0]=new Array("南阳市","郑州市","洛阳市","安阳市","新乡市");
   arr[1]=new Array("菏泽市","平阳市","廊坊市","京则市");
   arr[2]=new Array("邯郸市","石家庄市","平市");
   arr[3]=new Array("苏州市","宁波市","镇江市");
            var qu=[                        //使用字面量方式创建三维数组
            [
               ["西峡县","内乡县"],
               ["偏甜县","贫困县"],
            ],
            [
               ["富裕县","临县"],
               ["1","2"],
            ],
            [
               ["平郫县","嘉鱼县"],
               ["和弦","泽县"],
            ],
            [
               ["明线县","林步县"],
               ["和县","权县"],
            ]
            ];

当省信息变动时,取当前下拉框的value值,从而取得第一个数组中省对应的市信息,添加函数:

function onchang(op){
    var a=op.value;
    var b=arr[a];
    var city=document.getElementById('city');
    var xian=document.getElementById('xian');
    if(a=="-1"){
     city.innerHTML="<option value='-1'>-请选择-</option>";
     xian.innerHTML="<option value='-1'>-请选择-</option>";
     return;
    }
    city.options.length=0;             //清除市下拉框的选项
    for(var i=0;i<b.length;i++){
     var opcity=document.createElement("option");
     opcity.innerText=b[i];                     //对创建的选项添加内容
     opcity.value=i;                               //对创建的选项赋value值
     city.appendChild(opcity);               //将创建的选项添加到对应的下拉框中
    }
   }

当市信息变动时,取当前选项对应的value值,从而取得数组中市对应的县信息,添加函数;

function changcity(city){
    var a=document.getElementById("city").value;
    var b=document.getElementById("co").value;
    var c=qu[b][a];
    var xian=document.getElementById('xian');
    xian.options.length=0;
    for(var i=0;i<c.length;i++){
     var opcity=document.createElement("option");
     opcity.innerText=c[i];
     opcity.value=i;
     xian.appendChild(opcity);
    }
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值