城市选择二级联动、三级联动的思路

今天为了做项目写了个城市选择二级联动的插件,首先放上效果图

城市选择二级联动、三级联动的思路_第1张图片

如图所示。实现的效果是选择左边的省份后,右边点击后会出现相应省份的所有城市。
这里我采用了ajax引入json的方法。关于ajax和json我将会在之后写。
首先,我从网上找了一份包含所有省份和城市的json文件。由于不知道怎么上传我就单独发了一篇博客,把json文件的代码贴出来了,具体可以看city.json。
其实这个json文件并不是很好,并不是很符合我的要求,因此用起来结构稍微乱了点,大家可以调整下json文件,主要我太懒,就算了额。
然后就先引入省份了。选择省份后,城市根据前面省份的作为key值,来查找到相应的城市。而多级联动也是如此,不过是把前面一个的值作为后者的key在json中查找所需的内容,然后引入。

话不多说,贴上代码:

$(".province").on("click",function(){
    $.getJSON(
        "city.json",
        function(data){
            var proStr="
    "; var len=data.cityList.length; for (var i=0;i"
  • "+data.cityList[i].province+"
  • "; } proStr+="
"
$(".add-activity-address-chose").append(proStr); } ) }) $(".country").on("click",function(){ var chosenProvince=$(".province").text(); $.getJSON( "city.json", function (data){ var couStr="
    "; var len=data.cityList.length; for(var i=0;iif(chosenProvince==data.cityList[i].province){ var couLen=data.cityList[i].city.length; for(var j=0;j"
  • "+data.cityList[i].city[j].country+"
  • "; } } } couStr+="
"
; $(".add-activity-address-chose").append(couStr); } ) }) $(".add-activity-address-chose").on("click",".province-chose li",function(){ var theChosenPro=$(this).text(); $(".province").text(theChosenPro).css("color","black"); $(".province-chose").hide(); }).on("click",".country-chose li",function(){ var theChosenCou=$(this).text(); $(".country").text(theChosenCou).css("color","black"); $(".country-chose").hide(); })

你可能感兴趣的:(前端开发移动端)