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

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

城市选择

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

话不多说,贴上代码:

$(".province").on("click",function(){
    $.getJSON(
        "city.json",
        function(data){
            var proStr="<div class='province-chose'><ul>";
            var len=data.cityList.length;
            for (var i=0;i<len;i++){
                proStr+="<li>"+data.cityList[i].province+"</li>";
            }
            proStr+="</ul></div>"
          $(".add-activity-address-chose").append(proStr);
        }
    )
})

$(".country").on("click",function(){
    var chosenProvince=$(".province").text();
    $.getJSON(
        "city.json",
        function (data){

            var couStr="<div class='country-chose'><ul>";
            var len=data.cityList.length;
            for(var i=0;i<len;i++){
                if(chosenProvince==data.cityList[i].province){
                    var couLen=data.cityList[i].city.length;
                    for(var j=0;j<couLen;j++){
                        couStr+="<li>"+data.cityList[i].city[j].country+"</li>";
                    }
                }
            }
            couStr+="</ul></div>";
            $(".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();
})
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值