js省市区三级联动效果,jquery省市区三级联动效果,相信这样的文章,这样的资源网上已经很多,这个是自己整理的最新的省市区数据(含2017年之前的最新数据)附加的三级联动效果,最新数据可以查看这篇“自己整理的最新的全国省市区数据库,最新xml省市区数据”,里面有最新的xml格式的全国省市区数据,所以本笔记是顺便弄的一个jquery省市区三级联动效果的简单笔记,代码如下:
html:
<div class="address-box" id="select-area">
<select id="province"></select>
<select id="city"></select>
<select id="country"></select>
</div>
css:
.address-box{ width: 500px; height: 80px; margin: 100px auto;}
.address-box select{ min-width: 100px; height: 40px; font-size: 14px;}
javascript:
(function($){
$.fn.selectAddress=function(options){
//默认select的id
var defaults={
province: '#province',
city: '#city',
country: '#country'
};
var opts=$.extend({}, defaults, options),
province=$(opts.province),
city=$(opts.city),
country=$(opts.country);
//ajax公用函数
function ajaxFun(url,type,obj,selectOption){
$.ajax({
url:url,
datatype:type,
type:"GET",
success:function(xmlDoc){
var valueList = $(xmlDoc).find(selectOption);
if(obj==city || obj==country ){
valueList = $(xmlDoc).find(selectOption).children(obj);
}
$(valueList).each(function(){
obj.append("<option value='"+$(this).attr("name")+"'>"+$(this).attr("name")+"</option>");
});
}
});
}
//初始化数据
function init(){
province.append("<option value='0'>请选择省份..</option>");
city.append("<option value='0'>请选择城市..</option>");
country.append("<option value='0'>请选择县区..</option>");
var selectOption="province";
ajaxFun("area.xml","xml",province,selectOption);
}
//选择省份
province.on('change', function() {
if($(this).val() == "0") {
city.find("option").remove();
country.find("option").remove();
city.append("<option value='0'>请选择城市..</option>");
country.append("<option value='0'>请选择县区..</option>");
}else{
city.find("option").remove();
country.find("option").remove();
var selectVal = $(this).val();
//被选择的省份
var provinceOption="province[name="+selectVal+"]";
//当选择省份时初始联动显示的第一个城市
var cityOption="province[name="+selectVal+"] city:first";
ajaxFun("area.xml","xml",city,provinceOption); //城市
ajaxFun("area.xml","xml",country,cityOption); //县区
}
});
//选择城市
city.on('change', function() {
country.find("option").remove();
var selectVal = $(this).val();
var selectOption="city[name="+selectVal+"]";
ajaxFun("area.xml","xml",country,selectOption);
});
init();
}
})(jQuery);
调用:
$(function(){
$(“#select-area”).selectAddress();
})
效果和代码请点击如下链接:
