省市区县三级联动思路写法

这篇博客介绍了一种实现省市区县三级联动的方法,通过JavaScript和jQuery操作DOM,利用三个数据数组关联实现不同级别选择器的联动更新。示例代码中展示了如何根据省份ID获取对应城市的选项,以及根据城市ID获取对应区域的选项。
摘要由CSDN通过智能技术生成

数据三个数组,分别代表省,市,区,这个数据可以是后台从数据库读出来的数据,也可以是在JS里直接写的数据。但无论是哪种形式,三个数组的数据都是有关联的。arr_c,市数组,里面每一项内容都有一个属性‘pid’,表示这个市是属于哪个省的,即pid对应的是省数组里的id。同样arr_a,区数组,里面的cid是对应市数组里的id,表示这个区是属于哪个市的。

 

<div>三级联动试例</div>

<div>

<select name="选择省份" id="pro">选择省份</select>

<!-- <option value=""></option> -->

<select name="选择市区" id="city">选择市区</select>

<select name="选择区县" id="area">选择区县</select>

</div>

 

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></scrip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
function init(obj_1,val_1,obj_2,val_2,obj_3,val_3){ //定义默认数据 var ar = ["请选择省份","请选择城市","请选择区"]; var pindex=0; var cindex=0; //初始化 $("<option>"+ar[0]+"</option>").appendTo($("#"+obj_1)); $("<option>"+ar[1]+"</option>").appendTo($("#"+obj_2)); $("<option>"+ar[2]+"</option>").appendTo($("#"+obj_3)); //初始化obj_1 for (i=0;i<mp.length;i++){ if (mp[i]==val_1){ pindex = i; $("<option selected>"+mp[i]+"</option>").appendTo($("#"+obj_1)); }else{ $("<option>"+mp[i]+"</option>").appendTo($("#"+obj_1)); } } if (pindex!=0){ for (n=0;n<mc[pindex].length;n++){ if (mc[pindex][n]==val_2){ cindex = n; $("<option selected>"+mc[pindex][n]+"</option>").appendTo($("#"+obj_2)); }else{ $("<option>"+mc[pindex][n]+"</option>").appendTo($("#"+obj_2)); } } } if (cindex!=0){ for (m=0;m<mh[pindex][cindex].length;m++){ if (mh[pindex][cindex][m]==val_3){ $("<option selected>"+mh[pindex][cindex][m]+"</option>").appendTo($("#"+obj_3)); }else{ $("<option>"+mh[pindex][cindex][m]+"</option>").appendTo($("#"+obj_3)); } } } //响应obj_1的change事件 $("#"+obj_1).change(function(){ //获取索引 pindex = $("#"+obj_1).get(0).selectedIndex; //清空c和h $("#"+obj_2).empty(); //重新给c填充内容 $("<option>"+ar[1]+"</option>").appendTo($("#"+obj_2)); if (pindex!=0){ for (k=0;k<mc[pindex-1].length;k++){ $("<option>"+mc[pindex-1][k]+"</option>").appendTo($("#"+obj_2)); } } //清空h $("#"+obj_3).empty(); $("<option>"+ar[2]+"</option>").appendTo($("#"+obj_3)); }); //响应obj_2的change事件 $("#"+obj_2).change(function(){ cindex = $("#"+obj_2).get(0).selectedIndex; //清空h $("#"+obj_3).empty(); //重新给h填充内容 $("<option>"+ar[2]+"</option>").appendTo($("#"+obj_3)); if (cindex!=0){ for (j=0;j<mh[pindex-1][cindex-1].length;j++){ $("<option>"+mh[pindex-1][cindex-1][j]+"</option>").appendTo($("#"+obj_3)); } } }); } 来源:http://www.vihchina.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做个有准备的人

受益虽浅以资鼓励无限

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值