文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

js实现省市区三级联动非select下拉框版

2024-04-02 19:55

关注

在网上搜三级联动发现都是用option写的,突发奇想用其他方式写了一个,自我感觉效果还不错,大家感兴趣的可以看看,不说废话,大家看效果

代码如下,小白写的有点乱,大家想看的就看看

1.html代码


<div class="box">
        <section class="province">省</section>
        <section class="city">市</section>
        <section class="area">区</section>
 
        <div class="si">
        </div>
</div>

2.css代码


<style>
        .box{
            width: 800px;
            height: 50px;
            margin: 20px auto;
            background-color: rgb(48, 49, 48);
            border-radius: 10px;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .box section{
            display: inline-block;
            background-color: rgb(168, 165, 165);
            flex-grow: 1;
            height: 30px;
            margin-right: 10px;
            margin-left: 10px;
            border-radius: 5px;
            line-height: 30px;
            padding-left: 10px;
        }
        .box section:hover{
            cursor: pointer;
        }
        .si{
            display: none;
        }
        .box .all{
            display: block;
            width: 740px;
            background-color: rgb(211, 203, 203);
            padding: 20px;
            position: absolute;
            border-radius: 10px;
            top: 57px;
        }
        .box .all:hover{
            cursor: pointer;
        }
        .box .all span{
            display: inline-block;
            width: 130px;
            height: 30px;
            font-size: 13px;
            padding-left: 10px;
            line-height: 30px;
            border-radius: 5px;
            margin-left: 10px;
            border: 1px solid #000;
            background-color: white;
            box-sizing: border-box;
            margin-top: 10px;
        }
</style>

3.js代码


<script>
        // 获取内容
        var data = city_code// 这个是我的数据
        // 获取省市区
        var province = document.querySelector(".province")
        var city = document.querySelector(".city")
        var area = document.querySelector(".area")
 
        // 获取隐藏div
        var si = document.querySelector(".si")
        
        province.addEventListener("mouseover",function(){
            si.classList.add("all")
            // 选择省
            var html = ""
            var all = document.querySelector(".all")
            for(var i = 0;i<data.length;i++){
                const provinceName = data[i].name
                const provinceID = data[i].code
                html += `<span id="${provinceID}">${provinceName}</span>`
            }
            all.innerHTML=html
 
            var spanAll = document.querySelectorAll("span")
            for(var j =0;j<spanAll.length;j++){
                spanAll[j].addEventListener("click",function(){
                    province.innerHTML=this.innerText
                    province.id=this.id
 
                    html = ""
 
                    // 选择市
                    for(var k = 0;k<data.length;k++){
                if (data[k].code===province.id) {
                    var citys = data[k].city
                    for(var i = 0;i<citys.length;i++){
                    html +=`<span id="${citys[i].code}">${citys[i].name}</span>`
                    }
                    all.innerHTML=html
                    var spanAll = document.querySelectorAll("span")
                    for(var j =0;j<spanAll.length;j++){
                        spanAll[j].addEventListener("click",function(){
                        city.innerHTML=this.innerText
                        city.id=this.id
 
                        html = ""
 
                        //选择区
                        for(var k = 0;k<citys.length;k++){
                if (citys[k].code===city.id) {
                    var areas = citys[k].area
                    for(var i = 0;i<areas.length;i++){
                    html +=`<span id="${areas[i].code}">${areas[i].name}</span>`
                    }
                    all.innerHTML=html
                    var spanAll = document.querySelectorAll("span")
                    for(var j =0;j<spanAll.length;j++){
                        spanAll[j].addEventListener("click",function(){
                        area.innerHTML=this.innerText
                        area.id=this.id
                        si.classList.remove("all")                 
                        })               
                    }
                    break
                }
            }
 
                        })                
                    }
                    break
                }
            }    
 
 
                         
                })                
            }
            
 
        })
 
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯