html三级联动地区选择框,省市区三级联动jquery实现代码

最近项目需要用到关于省市区三级联动下拉选择的功能,于是乎网上搜了一些做法,觉得有一些只是给出了小的案例,却很难找到详细的省、市、区的具体数据(其实,用baidu搜索就是这样啦),果断用google,搜出来的博文质量相当高,特此记录记录!!!

对于这个效果,其实我发现主要在于两点:1、jquery的筛选遍历操作;2、存储省、市、区这些数据时候的格式。另外一点是如何将获取得到的数据放到select option中(即下拉框中!)

对于第一个问题的解决,其实熟悉Jquery的博友估计是不难的,主要涉及:find,eq,attr等函数的操作。下面是其中涉及到的一个案例:用于获取省的所有数据,并将其放到下拉框中:

function func_suc_getXmlProvice(xml) {

//jquery的查找功能

var sheng = $(xml).find("prov");

//jquery的遍历与查询匹配 eq功能,并将其放到下拉框中

sheng.each(function(i) {

province.append(""

+ sheng.eq(i).attr("text") + "");

});

}

下面进入正题,建立一个动态web工程,然后将下面讲到的html、js文件、存放省市区xml文件 都放在Web-Contetn下即可。首先看一看前端html文件province_city_select.html:

省市区三级联动

地址是:

然后注意放进jquery-1.8.3.min.js,可以来我这里下来:jquery库文件。然后需要新建province_city.js,其源码如下:

$(function() {

var address = $("#pro_city");

var province = $("#province");

var city = $("#city");

var area = $("#area");

var preProvince = "选择省(市)";

var preCity = "选择市(区)";

var preArea = "选择区(县)";

//初始化

province.html(preProvince);

city.html(preCity);

area.html(preArea);

//文档加载完毕:即从province_city_select_Info.xml获取数据,成功之后采用

//func_suc_getXmlProvice进行 省的 解析

$.ajax({

type : "GET",

url : "province_city_select_Info.xml",

success : func_suc_getXmlProvice

});

//省 下拉选择发生变化触发的事件

province.change(function() {

//province.val() : 返回是每个省对应的下标,序号从0开始

if (province.val() != "") {

city.html(preCity);

//根据下拉得到的省对于的下标序号,动态从从province_city_select_Info.xml获取数据,成功之后采用

//func_suc_getXmlProvice进行省对应的市的解析

$.ajax({

type : "GET",

url : "province_city_select_Info.xml",

success : func_suc_getXmlCity

});

}

});

//市 下拉选择发生变化触发的事件

city.change(function() {

area.html(preArea);

$.ajax({

type : "GET",

url : "province_city_select_Info.xml",

//根据下拉得到的省、市对于的下标序号,动态从从province_city_select_Info.xml获取数据,成功之后采用

//func_suc_getXmlArea进行省对应的市对于的区的解析

success : func_suc_getXmlArea

});

});

//区 下拉选择发生变化触发的事件

area.change(function() {

var value = province.find("option:selected").text()

+ city.find("option:selected").text()

+ area.find("option:selected").text();

address.text(value);

$("#txtProCity").val(value);

});

//解析获取xml格式文件中的prov标签,得到所有的省,并逐个进行遍历 放进下拉框中

function func_suc_getXmlProvice(xml) {

//jquery的查找功能

var sheng = $(xml).find("prov");

//jquery的遍历与查询匹配 eq功能,并将其放到下拉框中

sheng.each(function(i) {

province.append(""

+ sheng.eq(i).attr("text") + "");

});

}

function func_suc_getXmlCity(xml) {

var xml_sheng = $(xml).find("prov");

var pro_num = parseInt(province.val());

var xml_shi = xml_sheng.eq(pro_num).find("city");

xml_shi.each(function(j) {

city.append(""

+ xml_shi.eq(j).attr("text") + "");

});

}

function func_suc_getXmlArea(xml) {

var xml_sheng = $(xml).find("prov");

var pro_num = parseInt(province.val());

var xml_shi = xml_sheng.eq(pro_num).find("city");

var city_num = parseInt(city.val());

var xml_xianqu = xml_shi.eq(city_num).find("county");

xml_xianqu.each(function(k) {

area.append(""

+ xml_xianqu.eq(k).attr("text") + "");

});

}

});

然后,重点来了,当然是province_city_select_Info.xml里面的内容啦,因为比较多,我只贴出一部分,如下所示,其余的可以到我这里来下载:省市区三级数据

好了,介绍一下效果:

刚开始的:

653ea6ecc069bcd561aaefce9917e4a1.png

下拉选择省的,然后出现市的,选择了市的,然后出现了区的,最后选择区的时候,得到地址:

ace98c040de896f170cb7205d413e130.png

57be9f536d656df4843fdf8f80caa910.png

9a3433687f99b5dbfc6aa2614b2f73a5.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值