📢 最新动态:2025年8月,AreaCity-JsSpider-StatsGov项目发布全新行政区划数据包,整合民政部2025年4月最新区划调整,新增天津涉县飞地修正(划重点:地理数据控狂喜!),无论是做表单开发还是地图应用,这套数据都能让你省心100倍!🚀
想象一下你在外卖APP选地址:先选北京市,下面立刻弹出东城区/朝阳区;切换到上海市,又秒变黄浦区/徐汇区,这种父级选项动态控制子级内容的神操作,就是二级联动!而City.js正是为此诞生的轻量级JavaScript库,让复杂联动变得像搭积木一样简单~
在HTML的<head>
里贴上这段代码,就像给页面注入灵魂:
<script src="https://cdn.jsdelivr.net/npm/city-js@latest"></script>
⚠️ 2025年TIP:建议锁定版本号(如@2.1.3
),避免自动更新引发兼容性地震!
扔两个<select>
标签到页面里,ID必须叫province
和city
(City.js的约定大于配置):
<select id="province"></select> <select id="city"></select>
City.js吃的是JSON格式的省份-城市数据,结构长这样:
{ "北京市": ["东城区", "西城区", "朝阳区"], "上海市": ["黄浦区", "徐汇区", "长宁区"], "广东省": ["广州市", "深圳市", "珠海市"] }
💡 懒人福利:直接用AreaCity-JsSpider-StatsGov的开源数据包,涵盖全国34省+400+城市,支持三级/四级联动!
在页面底部写上这段魔法代码,瞬间激活联动:
new City({ data: '你的数据文件路径.json', provinceSelect: document.getElementById('province'), citySelect: document.getElementById('city') });
🔥 进阶玩法:
autoComplete: true
dataUrl: '你的数据文件路径.json'
className
改宽高/颜色市
(如"北京市"非"北京")overflow: auto
溢出(City.js不香?试试纯手工DIY!)
<select id="province" onchange="updateCity()"></select> <select id="city"></select> <script> // 模拟数据 const data = { "北京": ["东城", "西城"], "上海": ["黄浦", "徐汇"] }; // 初始化省份 const province = document.getElementById('province'); Object.keys(data).forEach(p => { province.add(new Option(p, p)); }); // 联动函数 function updateCity() { const citySelect = document.getElementById('city'); citySelect.innerHTML = '<option>请选择</option>'; const cities = data[province.value]; cities?.forEach(c => { citySelect.add(new Option(c, c)); }); } </script>
Q1:City.js支持三级联动吗?
A:基础版主打二级联动,但通过嵌套调用或结合Ant Design Select等UI库,轻松实现三级跳!
Q2:数据更新后页面没变化?
A:检查是否调用reloadData()
方法刷新数据源,或者试试citySelect.innerHTML = ''
手动清空选项。
Q3:移动端显示错位?
A:给select加个min-width: 200px
,或者用-webkit-appearance: none
隐藏原生样式,自己写下拉面板!
📌 本文数据来源:
💬 互动话题:你在开发联动功能时踩过哪些坑?评论区吐槽赢City.js定制贴纸!🎁
本文由 业务大全 于2025-08-22发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vds.7tqx.com/wenda/690420.html
发表评论