JQ三級聯動的寫法


今天和大家分享下三級聯動的寫法

思路:1.通過AJAX獲取到json文件里的數據,GET方法

    2.在獲取到的數據里找到省份添加到下拉菜單中

    3.當省份標簽被改變時change事件通過當前省份與市的共同數組下標找到對應的市區;

實例:HTML

  

<!DOCTYPE html>
<html>
    <head>
        <script src="js/jquery-3.3.1.js"></script>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <select id="province">//創建省份下拉菜單
            <option>--省份--</option>
        </select>
        <select id="city">//創建市下拉菜單
            <option>--市--</option>
        </select>
        <select id="code">//創建郵編下拉菜單
            <option>--郵編--</option>
        </select>
    </body>
</html>

 

 

 

  JQ 第一級聯動省份

 

<script>
        //----------------------------聯動第一級-------------------------------------------------------
        $.get("js/city.json",function(data,status){//通過GET方法獲取到json文件里的數據
            $(data.城市代碼).each(function(i,el){      //通過JQ循環遍歷數據
                var str = "<option value=" + i + ">" + data.城市代碼[i].省 + "</option>"//把data的省份數據添加到下拉菜單中
                $("#province").append(str);//添加option標簽
            })
        })
    </script>

 

 

 

   第二級聯動市區: 當省級下拉菜單被改變時觸發change事件實現二級聯動

 

<script>
        $.get("js/city.json",function(data,status){//通過GET方法獲取到json文件里的數據
            var provinceId = null;//紀錄共同的數組下標值
        //----------------------------聯動第一級-------------------------------------------------------
            $(data.城市代碼).each(function(i,el){      //通過JQ循環遍歷數據
                var str = "<option value=" + i + ">" + data.城市代碼[i].省 + "</option>"//把data的省份數據添加到下拉菜單中
                $("#province").append(str);//添加option標簽
            });
        //----------------------------聯動第二級-------------------------------------------------------    
            $("#province").change(function(){//當省級下拉菜單被改變觸發change事件
                $("#city").html("<option>--市--</option>");//當省級下拉菜單被改變時清空市級下拉菜單
                $("#code").html("<option>--郵編--</option>");//當省級下拉菜單被改變時清空郵編下拉菜單
                provinceId = $("#province").val();//獲取到省和市的共同數組下標
                $(data.城市代碼[provinceId].市).each(function(index,ele){//循環共同數組的市
                    var str = "<option>" + ele.市名 + "</option>"//把data的市數據添加到下拉菜單中
                    $("#city").append(str);//添加option標簽
                })
            });
        </script>

 

 

   第三級聯動郵編: 當市級級下拉菜單被改變時觸發change事件實現三級聯動

<script>
        $.get("js/city.json",function(data,status){//通過GET方法獲取到json文件里的數據
            var provinceId = null;//紀錄共同的數組下標值
        //----------------------------聯動第一級-------------------------------------------------------
            $(data.城市代碼).each(function(i,el){      //通過JQ循環遍歷數據
                var str = "<option value=" + i + ">" + data.城市代碼[i].省 + "</option>"//把data的省份數據添加到下拉菜單中
                $("#province").append(str);//添加option標簽
            });
        //----------------------------聯動第二級-------------------------------------------------------    
            $("#province").change(function(){//當省級下拉菜單被改變觸發change事件
                $("#city").html("<option>--市--</option>");//當省級下拉菜單被改變時清空市級下拉菜單
                $("#code").html("<option>--郵編--</option>");//當省級下拉菜單被改變時清空郵編下拉菜單
                provinceId = $("#province").val();//獲取到省和市的共同數組下標
                $(data.城市代碼[provinceId].市).each(function(index,ele){//循環共同數組的市
                    var str = "<option>" + ele.市名 + "</option>"//把data的市數據添加到下拉菜單中
                    $("#city").append(str);//添加option標簽
                })
            });
            //----------------------------聯動第三級-------------------------------------------------------    
            $("#city").change(function(){
                $("#code").html("");
                $(data.城市代碼[provinceId].市).each(function(index,ele){
                    if($("#city").val()==ele.市名){
                        console.log(ele.編碼);
                        var str = "<option>" + ele.編碼 + "</option>"//把data的省份數據添加到下拉菜單中
                        $("#code").append(str);//添加option標簽
                    }
                })
            })
        })
    </script>

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM