zoukankan      html  css  js  c++  java
  • 原生js实现二级联动

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>表单联动</title>
        <style>
            #province,#city{
                 200px;
                height: 100px;
            }
            p{
                cursor: pointer;
            }
            p:hover{
                background-color: gray;
            }
        </style>
    </head>
    <body>
        <h4>省份</h4>
            <select name="" id="province" multiple>
                
            </select>
    
        <h2>城市</h2>
            <select name="" id="city" multiple>
    
            </select>   
        
        <script>
                var x = [
                        [
                            ['0','1']
                        ]
                ]
                console.log(x)
            function dataElemnt(){   
                this.province = document.getElementById('province');
                this.city = document.getElementById('city');
                this.region = document.getElementById('region');
                // 数据保存 : 第一项 是省
                this.data = [ 
                                ['江西省','南昌市','宜春市','赣州市','吉安市','九江市','上饶市','抚州市','新余市'],
                                ['安徽省','合肥市','芜湖市','淮南市','马鞍山市'], 
                                ['江苏省','南京市','无锡市','无锡市','常州市','南通市']
                            ]
                }
    
            
            var object = new dataElemnt();
            
            // 初始化数据
            function city_data(){
                var data = object.data;
                // 初始化数据 
                for(var i=0; i<data.length; i++){
                    // 创建默认省份
                    var option = document.createElement('option');
                    option.setAttribute('value','shen')
                    var option_text = document.createTextNode( data[i][0] )
                    option.appendChild( option_text )
                    object.province.appendChild(option);
                }
    
            }
    
            // 点击 省 的时候
            function on_pro(){
                var pro = object.province;// select
                pro.onchange=function(){
                    var index = pro.selectedIndex;  // 当前选中的索引值
                    // console.log( index )
                    var shen = pro.options[ index ].text;  // 选中的元素的值
                    showCity(shen)
                }
                
    
            }
    
            // 显示数据
            function showCity(shen){
                var city = object.city;
                var data = object.data;
                for(var i=0; i<data.length; i++){
                    if( shen == data[i][0]){
    
                        // 数据会叠加,清空数据
                        city.innerHTML ='';
                        for( var j=1; j< data[i].length; j++){
                            var option = document.createElement('option');
                            var option_text = document.createTextNode( data[i][j] );
                            option.appendChild( option_text )
                            city.appendChild( option );
    
                        }
                    }
                }
            }
    
            // 加载执行
        window.onload=function(){
                city_data();
                on_pro();
                // 默认是江西省
                showCity('江西省');
                console.log( object.data)
        }
        </script>
    </body>
    </html>
  • 相关阅读:
    【CF932F】Escape Through Leaf 启发式合并set维护凸包
    【CF932E】Team Work/【BZOJ5093】图的价值 数学+NTT
    【CF917D】Stranger Trees 树形DP+Prufer序列
    【CF914G】Sum the Fibonacci 快速??变换模板
    【CF772D】Varying Kibibits FWT
    【CF802C】Heidi and Library (hard) 费用流
    【CF802L】Send the Fool Further! (hard) 高斯消元
    【CF809D】Hitchhiking in the Baltic States Splay
    【CF815D】Karen and Cards 单调栈+扫描线
    【CF819D】Mister B and Astronomers EXGCD
  • 原文地址:https://www.cnblogs.com/ar13/p/8000707.html
Copyright © 2011-2022 走看看