vue省市县三级联动全网最详细,嘎嘎详细!!!

 效果图:

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- 创建容器 -->
		<div id="app">
			<select v-model='province' @change='changePro'>
				<option v-for="obj in arrAll" :value="obj">{{obj.name}}</option>
			</select>
			<select v-model='city'  @change='changeCity'>
				<option v-for="obj in province.city" :value="obj">{{obj.name}}</option>
			</select>
			<select v-model='county'>
				<option v-for="obj in city.area" :value="obj">{{obj.name}}</option>
			</select>
		</div>
		<!-- 引入vue -->
		<script src="./js/vue.js"></script>
		<script>
			// 初始化vue实例
			new Vue({
				el: '#app',
				// data中的数据不可以相互调用
				data: {
					arrAll: [], //所有对象
					province: '', //当前选中的省对象
					city: '', //当前选中的市对象
					county: '' //当前选中的区县对象
				},
				mounted(){
					this.getJson();
				},
				methods:{
					changePro(){
						// 切换省,市切换为默认第一个
						//市对象默认第一个
						this.city=this.province.city[0];
						this.changeCity();
					},
					changeCity(){
						// 切换市,县区切换为默认第一个
						//县区对象默认第一个
						this.county=this.city.area[1];
					},
					getJson(){
						fetch('./js/city.json')
						.then(res=>res.json())
						.then(res=>{
							//将获取的所有数据添加到arrAll
							this.arrAll=this.arrAll.concat(res)
							//省对象默认第一个
							this.province=this.arrAll[0];
							//市对象默认第一个
							this.city=this.province.city[0];
							//县区对象默认第一个
							this.county=this.city.area[1];
							
						})
					}
				}
			})
		</script>
	</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值