jQuery技术实现地址级联

jQuery技术实现地址级联(三级联动)

思路:对下拉选项省、市、县分别作处理,实现省市县间的关联。
采用数组的形式表明层级关系。
一维数组放市
二维数组放省
三维数组放县

在data.js文件中作数组操作
主要代码实例如下:

var provinces =['山西','山东','河南','河北'];

var cities = [
    ['太原','晋中','大同','阳泉'],
    ['济南','青岛','威海'],
    ['郑州','洛阳'],
    ['石家庄','保定']
];

var areas = [
    [
        ['小店','迎泽','杏花岭','尖草坪'],
        ['榆次','左权','寿阳'],
        ['左云'],
        ['平定','盂县']
    ],
    [
        ['济南地区1','济南地区2'],
        ['青岛地区1','青岛地区2'],
        ['威海地区1','威海地区2'],
    ],
    [
        ['郑州地区1','郑州地区2'],
        ['洛阳地区1','洛阳地区2'],
    ],
    [
        ['石家庄地区1','石家庄地区2'],
        ['保定地区1','保定地区2'],
    ],
]

在html文件中实现具体操作,在利用jQuery技术时务必要记得导入jquery.js的插件。

主要进行的操作是对数组的遍历,通过下标拿到元素,继续进行遍历,拼接操作,清空操作。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery-3.4.1.js" type="text/javascript"></script>
    <script src="js/data.js" type="text/javascript"></script>

    <script type="text/javascript">

       /* $(document).ready(function(){

        });*/

       $(function(){

           $(provinces).each(function(i,o){
               var str = "<option value=\""+i+"\">"+o+"</option>";
               $('#province').append(str);

           });

           $('#province').on('change',function(){
               pIndex = $('#province').find(':selected').attr('value')

               $('#city').empty().append("<option value=\"\">请选择</option>");
               $('#area').empty().append("<option value=\"\">请选择</option>");

               $(cities[pIndex]).each(function(i,o){
                   var str = "<option value=\""+i+"\">"+o+"</option>";
                   $('#city').append(str);
               });

           })

           $('#city').on('change',function(){
               cIndex = $('#city').find(':selected').attr('value');

               $('#area').empty().append("<option value=\"\">请选择</option>");
               $(areas[pIndex][cIndex]).each(function(i,o){
                   var str = "<option value=\""+i+"\">"+o+"</option>";
                   $('#area').append(str);
               });

           });

       });


    </script>
</head>
<body>

    <select name="" id="province">
        <option value="">请选择</option>
    </select><select name="" id="city">
        <option value="">请选择</option>
    </select><select name="" id="area">
        <option value="">请选择</option>
    </select></body>
</html>

需要注意的情况
相关值会出现累加情况,此时则需要对jquery对象进行清空,调用empty()方法完成清空操作。但为了保留初始的请选择信息,则直接在清空后继续追加option项(特殊字符需转义)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值