前端js-----三级联动

news/2024/7/19 14:19:53 标签: javascript, js, 前端

js_0">效果如下(原生js):

在这里插入图片描述------
HTML:

<body>
		请选择省份
		<select name="" id="province">
			<option value="请选择省份">请选择省份</option>
		</select>
		请选择市
		<select name="" id="cities">
			<option value="请选择市">请选择市</option>
		</select>
		请选择区
		<select name="" id="shiqu">
			<option value="请选择市">请选择区</option>
		</select>
	</body>

JS:

javascript">var province = new Array();
		var cities = new Array();
		province['河北省'] = ['石家庄', '保定', '邯郸', '邢台', '张家口'];
		province['北京市'] = ['东城', '西城', '宣武', '海淀', '崇文'];
		//console.log(province['河北省'][0]);
		cities['石家庄'] = ['裕华区','东区','西区','南区'];
		cities['保定'] = ['雄安新区','东区','西区','南区'];
		//console.log(cities['石家庄'][1]);

		var oProvince = document.querySelector('#province');
		var oCities = document.getElementById('cities');
		var shiqu=document.getElementById('shiqu');
		//console.log(typeof province['河北省']);
		for (var k in province) {
			// console.log(k);
			// console.log(province[k]);
			oProvince.add(new Option(k, k), null);
		}

		oProvince.onchange = function() {
			//清空市级下拉菜单
			oCities.length = 1;
			//点了河北省控制台会获得河北省   点了北京市会获得北京市
			//console.log(oProvince.value);
			var oSelect = oProvince.value; //获取选中的省份值
			for (var k in province[oSelect]) {
				//console.log(province[oSelect][k]);
				oCities.add(new Option(province[oSelect][k], province[oSelect][k]), null)
			}
		}
		
		for(var k in cities){
			// console.log(k);
			// console.log(cities[k]);
			oCities.add(new Option(k,k),null);
		}
		oCities.onchange=function(){
			shiqu.length = 1;
			//console.log(111);
			//console.log(oCities.value);
			var oSelects = oCities.value;
			
			for (var k in cities[oSelects]) {
				console.log(cities[oSelects][k]);
				shiqu.add(new Option(cities[oSelects][k], cities[oSelects][k]), null)
			}
		}

http://www.niftyadmin.cn/n/1143451.html

相关文章

前端js-----轮播图(焦点图)实现原理

轮播&#xff0c;无论是文字轮播还是图片轮播&#xff0c;他们的原理都是一样的&#xff0c;都是通过定时器setInterval执行循环展示和隐藏。 原理&#xff1a; 一系列的图片平铺&#xff0c;一般是放在li里面&#xff0c;只显示一张图片&#xff0c;其余图片隐藏over-follow:h…

前端js-----vue中的key

在官方文档中是这样解释的&#xff1a;key的特殊属性主要用在vue的虚拟DOM算法&#xff0c;在新旧nodes对比时辨识VNodes。如果不能使用key&#xff0c;Vue会使用一种最大 限度减少动态元素并且尽可能的尝试就地修改或修复相同类型元素的算法。而且使用key时&#xff0c;它会基…

Vue购物车(全选和全不选)

效果如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

Vue中作用域插槽的妙用

昨天在学后台管理项目的时候遇到了有趣的东西-----作用域插槽 为什么scope.row可以获得本行的数据&#xff0c;说明这个大神在封装组件的时候&#xff0c;用了一个插槽<slot :rowdata></slot> 话又说回来&#xff0c;什么是作用域插槽&#xff1a;当我们在封装组件…

Vue报错:NavigationDuplicated: Avoided redundant navigation to current location(提示这是到当前位置的冗余导航)

今天在做电影app时&#xff0c;需求是&#xff1a;有一个长列表&#xff0c;当我们滑动后&#xff0c;进入了另外一个页面之后在返回列表页时&#xff0c;会依旧保持我们第一次滑动的位置。看图&#xff1a; 解决方法&#xff1a; 在router.js&#xff08;由于配置不同&#xf…

Vue中解决better-scroll的滚动问题以及刷新页面better-scroll不起作用问题

不得不说better-scroll是个很好用的第三方框架&#xff0c;但是使用恰当才能发挥它强大的功能哦&#xff01;具体使用步骤请移步→better-scroll链接Github 但是better-scroll用的恰当的话并不会出现在手机上滚动不了的情况 具体问题&#xff1a; 1.使用的时候为什么滚动不起作…

vue中报错Error in render: “TypeError: Cannot read property ‘length‘ of undefined“

通过查阅资料&#xff0c;其实这种报错会有两种&#xff1a; 1.在html标签模板上使用length会报错&#xff0c;报错原因为在这个时候你还拿不到某个数组的length&#xff0c;解决方案为&#xff1a;在此标签上加个v-if"array.lenth",如果你更想保险的话使用v-if"…

Vue报错[Vue warn]: Error in render: “TypeError: “checkedCount“ is read-only“

写vue时报出这样一个错误&#xff0c;某个东西是只读的&#xff1b; 报错原因&#xff1a;我在用一个变量的时候&#xff0c;我居然是用const声明的&#xff0c;真不细心。声明变量用let&#xff0c;常量用const&#xff1b; 复习一下let和const&#xff1a; 1.let &#xff08…