当前位置:首页 » 《随便一记》 » 正文

【JavaScript】原生js实现省市区联动效果

25 人参与  2023年05月06日 11:13  分类 : 《随便一记》  评论

点击全文阅读


?博主:初映CY的前说(前端领域) ,?本文核心:用原生js实现省市区联动

【前言】今日在复习省市县三级联动的时候,有点忘了原生的js应该怎么样处理省市县的联动,特此写下来再次复习下

目录

⭐实现思路⭐思路转化为代码1.获取相对应的DOM对象2.写省市县接口获取到接口信息3.写下change事件,有变化时调用接口 ⭐ 效果查看

⭐实现思路

1.获取相对应的DOM对象2.写省市县接口获取到接口信息3.写下change事件,有变化时调用接口

⭐思路转化为代码

1.获取相对应的DOM对象

首先的话,我们先写一下静态的页面结构
(以下是关键代码)

            <div class="row mb-3">              <label class="col-sm-2 col-form-label-sm">籍贯</label>              <div class="col-sm-3">                <select class="form-select form-select-sm" name="province">                  <option selected value="">--省--</option>                </select>              </div>              <div class="col-sm-3">                <select class="form-select form-select-sm" name="city">                  <option selected value="">--市--</option>                </select>              </div>              <div class="col-sm-3">                <select class="form-select form-select-sm" name="county">                  <option selected value="">--区/县--</option>                </select>              </div>            </div>

用js获取相对应的DOM

//   三省联动dom节点的获取const province = document.querySelector('[name="province"]')const city = document.querySelector('[name="city"]')const county = document.querySelector('[name="county"]')

2.写省市县接口获取到接口信息

const getProvince = async () => {    const { data } = await axios.get('/geo/province')    console.log(data);    province.innerHTML = `<option value=""> --省份-- </option>` + data.map(item => `<option value="${item}"> ${item} </option>`).join('')}const getCity = async () => {    const { data } = await axios.get(`/geo/city?pname=${province.value}`)    console.log(data);    city.innerHTML = `<option value=""> --市-- </option>` + data.map(item => `<option value="${item}"> ${item} </option>`).join('')}const getCounty = async () => {    const { data } = await axios.get(`/geo/county?pname=${province.value}&cname=${city.value}`)    console.log(data);    county.innerHTML = `<option value=""> --区/县-- </option>` + data.map(item => `<option value="${item}"> ${item} </option>`).join('')}

注意点:option的值是通过value获取,map需要与joio一起使用(map返回值是产生新的数组,join将与其拼接)

3.写下change事件,有变化时调用接口

//  change事件province.addEventListener('change', function () {    getCity()    county.innerHTML = `<option value=""> --区/县-- </option>`})// 市change事件city.addEventListener('change', function () {    getCounty()})

注意点:注意联级调用,一层层的触发的呦。

⭐ 效果查看

在这里插入图片描述

至此本文结束,愿你有所收获!
期待大家的关注与支持! 你的肯定是我更新的最大动力!!!


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/61084.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 土匪袭村时他在陪白月光看电影+后续+结局(吴明洋张双锁白雪)_(吴明洋张双锁白雪)土匪袭村时他在陪白月光看电影+后续+结局列表_笔趣阁(吴明洋张双锁白雪)
  • 「嫂子把我的狗做成了狗肉香肠」精彩节选试读_「瑶瑶汪汪麻辣味」小说免费试读
  • 前世佛子殉情自杀,害我遗臭万年,重生后整死他独家章节限时试读_小玉和尚青梅章节限时抢先看‌
  • [唯有良人相伴,万事皆可顺遂]小说精彩章节分享_「妹妹」口碑神作必读篇章
  • 忆君不见泪沾襟爱恨纠葛(谭知韵顾奕白)_忆君不见泪沾襟爱恨纠葛
  • 日暮青山绿渐隐纯净版全书许星森纪冰雪在线
  • [废太子你选的,朕兵临天下你哭啥?]情感冲突名场面试读章_赵文瑞萧青婉精彩节选免费试读
  • 「年代:开局洪灾,打捞绝美村花」小说章节免费试读_[陈兴平林允棠]全文+后续
  • [纨绔世子遇到我后声名狼藉]小说章节试读_[柳鸣玉叶鸿云]节选试读
  • 日暮青山绿渐隐文章简述全书许星森纪冰雪许书阳在线
  • 爱若有天意,兜转终可回全书+后续+结局(宋清澜萧沉)结局_(宋清澜萧沉爱若有天意,兜转终可回全书+后续+结局全书结局)结局列表_笔趣阁(宋清澜萧沉)
  • (番外)+(全书)你揽星辰我拥黄昏结局+番外(晏沉舟尤雾眠)完结_(晏沉舟尤雾眠)列表_笔趣阁(你揽星辰我拥黄昏结局+番外)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1