四级下拉菜单联动

一.html:


第1级:


 <select  id="parent" οnchange="clickOpt($(this).val())">
        <option value="">请选择</option>
        <option value="I">信息传输、软件和信息技术服务业</option>
        <option value="J">金融业</option>
        <option value="K">房地产业</option>
        <option value="L">租赁和商务服务业</option>
        <option value="M">科学研究和技术服务业</option>
        <option value="O">居民服务、修理和其他服务业</option>
        <option value="P">教育</option>
    </select>
   <br>
    <select  id="child1" οnchange="clickOpt1(2,$(this).val(),list3[$(this).val()])">
       <option value="">请选择</option>
    </select>
    <br>

    <select  id="child2" οnchange="clickOpt1(3,$(this).val(),list4[$(this).val()])">
       <option value="">请选择</option>
    </select>
    <br>

    <select  id="child3">
       <option value="">请选择</option>
    </select>
   


     

二:js

 <script>


准备数据:


//第2级

var list2 = {'I':['64','65'],'J':['66','69'],'K':['70','71'],'L':['72'],'M':['74'],'O':['79','81'],'P':['82']};
var list2_ = {'64':'互联网和相关服务','65':'软件和信息技术服务业','66':'货币金融服务','69':'其他金融业','70':'房地产业','71':'租赁业','72':'商务服务业','74':'专业技术服务业','79':'居民服务业','81':'其他服务业','82':'教育'};

// 第3级
var list3 = {'64':['642','649'],'65':['659','651'],'66':['663'],'69':['691','693'],'70':['703'],'71':['712'],'72':['723','727','729'],'74':['749'],'79':['791','799'],'81':['819'],'82':['829']};
var list3_ = {'642':'互联网信息服务','649':'其他互联网服务','651':'软件开发','659':'其他信息技术服务业','663':'非货币银行服务','691':'金融信托与管理服务','693':'非金融机构支付服务','703':'房地产中介服务','712':'文化及日用品出租','723':'咨询与调查','727':'旅行社及相关服务','729':'其他商务服务业','749':'其他专业技术服务业','791':'家庭服务','799':'其他居民服务业','819':'其他未列明服务业','829':'技能培训、教育辅助及其他教育'};

//第4级
var list4 = {'642':['6420'],'649':['6490'],'651':['6510'],'659':['6599'],'663':['6631','6633'],'691':['6910'],'693':['6930'],'703':['7030'],'712':['7129'],'723':['7239'],'727':['7279'],'729':['7299'],'749':['7491','7499'],'791':['7910'],'799':['7990'],'819':['8190'],'829':['8299']};
var list4_ = {'6420':'互联网信息服务','6490':'其他互联网服务','6510':'软件开发','6599':'其他未列明信息技术服务业','6631':'金融租赁服务','6633':'典当','6910':'金融信托与管理服务','6930':'非金融机构支付服务','7030':'房地产中介服务','7129':'其他文化及日用品出租','7139':'其他专业咨询','7279':'其他旅行社相关服务','7299':'其他未列明商务服务业','7491':'专业化设计服务','7499':'其他未列明专业技术服务业','7910':'家庭服务','7990':'其他居民服务业','8190':'其他未列明服务业','8299':'其他未列明教育'};

var default_ = '<option value="">请选择</option>';

function clickOpt(num){
    var html1=default_;
     $.each(list2[num],function(key,val){
        html1 += '<option value="'+val+'">'+list2_[val]+'</option>';
         $('#child1').html(html1);
      });
     $('#child2').html(default_);
     $('#child3').html(default_);
     $('#child4').html(default_);
   
}

function clickOpt1(num,v,list){
    var html2=default_;
     var arr = list3_;
     if(3==num){
       arr = list4_;
     }
     $.each(list,function(key3,val3){
        html2 += '<option value="'+val3+'">'+arr[val3]+'</option>';
         $('#child'+num).html(html2);
      });
   
}






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue四级联动菜单可以使用Vue的数据绑定和组件化思想来实现。具体操作如下: 1. 在父组件中定义一个数组,存储四级联动数据。 2. 定义三个子组件,分别用来显示省、市、区的下菜单。 3. 在父组件中使用v-for指令遍历数组,将数据传递给子组件。 4. 在子组件中定义props属性,接受父组件传递过来的数据。 5. 在子组件的template中使用v-for指令遍历数据,渲染下菜单。 6. 在子组件的methods中定义一个change事件,用来触发父组件的数据更新操作。 具体代码如下: 父组件: ``` <template> <div> <province-select :provinces="provinces" @change="handleProvinceChange" /> <city-select :cities="cities" @change="handleCityChange" /> <district-select :districts="districts" @change="handleDistrictChange" /> </div> </template> <script> import ProvinceSelect from './ProvinceSelect.vue' import CitySelect from './CitySelect.vue' import DistrictSelect from './DistrictSelect.vue' export default { components: { ProvinceSelect, CitySelect, DistrictSelect }, data() { return { provinces: [ { id: 1, name: '北京市' }, { id: 2, name: '上海市' }, { id: 3, name: '广东省' } ], cities: [], districts: [] } }, methods: { handleProvinceChange(province) { this.cities = [ { id: 1, name: '北京市' }, { id: 2, name: '上海市' }, { id: 3, name: '广州市' } ] this.districts = [] }, handleCityChange(city) { this.districts = [ { id: 1, name: '东城区' }, { id: 2, name: '西城区' }, { id: 3, name: '黄浦区' }, { id: 4, name: '徐汇区' }, { id: 5, name: '天河区' }, { id: 6, name: '番禺区' } ] }, handleDistrictChange(district) { console.log(district) } } } </script> ``` 省级子组件: ``` <template> <div> <select v-model="selectedProvince" @change="handleChange"> <option value="">请选择省份</option> <option v-for="province in provinces" :key="province.id" :value="province">{{province.name}}</option> </select> </div> </template> <script> export default { props: { provinces: { type: Array, default: [] } }, data() { return { selectedProvince: null } }, methods: { handleChange() { this.$emit('change', this.selectedProvince) } } } </script> ``` 市级子组件: ``` <template> <div> <select v-model="selectedCity" @change="handleChange"> <option value="">请选择城市</option> <option v-for="city in cities" :key="city.id" :value="city">{{city.name}}</option> </select> </div> </template> <script> export default { props: { cities: { type: Array, default: [] } }, data() { return { selectedCity: null } }, methods: { handleChange() { this.$emit('change', this.selectedCity) } } } </script> ``` 区级子组件: ``` <template> <div> <select v-model="selectedDistrict" @change="handleChange"> <option value="">请选择区县</option> <option v-for="district in districts" :key="district.id" :value="district">{{district.name}}</option> </select> </div> </template> <script> export default { props: { districts: { type: Array, default: [] } }, data() { return { selectedDistrict: null } }, methods: { handleChange() { this.$emit('change', this.selectedDistrict) } } } </script> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值