省级联动jq

一、实现的简要思路:
将省和市分别在对应的select里动态地创建option,并遍历省和市的数组,将数据添加加到对应的省和市列表中。

二、详细操作步骤:
1.创建两个数组province和city,分别存储省和市的数据。(省的为一维数组,市的为二维数组)

2.加载标签的内容。加载完后,在回调函数function()中通过id选择器找到id=“pro”对应的。

3.each()遍历数组province,每遍历一次就动态创建一个空的,然后给添加上属性值value,值为下标index。再将数组province中的值追加到中,将追加到id=“pro”对应的。

4.pro.change(function (){})里的使得在点击省选项后,会弹出该省相应的市选项。下面我们要做的就是通过中的中的value值找到二维数组city中相应的一维数组市。

5.在回调函数function()中通过id选择器找到id=“cy”对应的,然后再each()遍历数组city[pro.val()],每遍历一次就动态创建一个空的,然后给添加上属性值value,值为下标ix。再将数组city[pro.val()]中的值追加到中,将追加到id=“cy”对应的。

三、小细节
1.pro.val()不仅是数组province的下标,也是中的的value值。

2.cy.empty()这一步必须要,不然每选一次省就会在市列表上加上省对应的市,造成重复累赘。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PC4</title>
    <script type="text/javascript" src="../jq/jquery-3.4.1.min.js"></script>
    <script>
        var province = ["广东省", "黑龙江省", "云南省"];
        var city = [["佛山", "东莞","汕头"], ["哈尔滨", "鸡西", "大庆"], ["昆明", "邵通"]];
        $(document).ready(function () {
            var pro = $("#pro");
            $.each(province, function (index, em) {
                var option = $("<option></option>");
                option.attr("value",index);
                option.append(em);
                pro.append(option);
            });
            pro.change(function () {
               var cy = $("#cy");
               cy.empty();
               $.each(city[pro.val()],function (ix,e) {
                   var o = $("<option></option>");
                   o.attr("value",ix);
                   o.append(e);
                   cy.append(o);
               });
            });
        });
    </script>
</head>
<body>
<select name="province" id="pro">
    <option value="-1">请选择</option>
</select>
<select name="city" id="cy">

</select>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值