动态联动的二级级联

级联是多数情况下用于有上下级关系的场景。比如国家、城市;或者省、市;再或在 连锁店、地址等等。
效果图.png
css区写法:

   <style>
        .hide{
            display: none;
        }
        .show{
            display: inline-block;
        }
    </style>

js区域的写法:

<script type="text/javascript">
    var country = ['中国', '美国','英国']
    var city = [
        ['北京', '上海', '广州','深圳'],
        ['纽约','华盛顿','洛杉矶'],
        ['伦敦']
    ];
    //获取dom
    var countrySelect = document.getElementById("country");
    var citySelect = document.getElementById("city");
    //初始化国家下拉列表
    for(var i = 0; i < country.length; i++) {
        //新的option
        var option = new Option()
        //赋值
        option.appendChild(document.createTextNode(country[i]))
        //插入
        countrySelect.appendChild(option)
    }
    //切换
    countrySelect.addEventListener('change', function(){
        //城市显示
        citySelect.className = 'show';
        //另城市列表变为初始状态,可以注释掉查看效果
        citySelect.options.length = 1;
        //如果国家选择不为默认值
        if(countrySelect.selectedIndex != 0) {
            //selectedIndex:属性可设置或返回下拉列表中被选选项的索引号
            countryIndex = countrySelect.selectedIndex - 1;
            //遍历相应国家的城市
            for (var j = 0; j < city[countryIndex].length; j++) {
                //新的option
                var cityOption = new Option()
                //赋值
                cityOption.appendChild(document.createTextNode(city[countryIndex][j]))
                //插入
                citySelect.appendChild(cityOption)
            }
        }
        else{
            //城市隐藏
            citySelect.className = 'hide';
        }
    })
</script>

html区域写法:

<body>
<select name="" id="country">
    <option selected>请选择国家</option>
</select>
<select name="" id="city" class="hide">
    <option selected>请选择城市</option>
</select>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值