JS中的二级联动的注意事项

今天做了一个二级联动的下拉选择框(select)做这个二级联动的时候遇到了一个问题,就是二级菜单的内容越来越多,选择一次一级菜单就会产生一次二级菜单的内容,而且是越来越多。通过思路和代码的双重排查后发现问题出现的原因:更改一级菜单时就必须把二级菜单清空,否则也会出现我这样的问题!

特别要注意一点:转换一级选项时,要清空先前创建的二级选项,否则选项会越来越多

代码如下:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title></title></head><body>    <form method=post action="" name="form1">        <select name="province"  onchange="getdiqu()">            <option value="0">请选择所在城市 </option>            <option value="成都">成都</option>            <option value="绵阳">绵阳</option>            <option value="德阳">德阳</option>        </select>        <select name="city">            <option value="0">请选择所在地区</option>        </select>    </form>

<script>        /*定义二维数组存放地区*/        var city=[            ["武侯区","锦江区","龙泉驿区","天府新区"],            ["涪城区","高新区"],            ["旌阳区","罗江县","中江县"]        ];        function getdiqu(){            //获得城市下拉框的对象            var sltProvince = document.form1.province;            //获得地区下拉框的对象            var sltCity = document.form1.city;            //得到对应城市的地区数组            var provinceCity = city[sltProvince.selectedIndex - 1];            //清空寺区下拉框(二级子菜单)特别注意一定要清空,否则二级菜单的内容会越来越多            sltCity.length = 0;            //将地区数组中的值填充到地区下拉框中            for(var i=0;i<provinceCity.length;i++){                sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);            }        }    </script></body></html>
时间: 2024-10-26 21:40:20

JS中的二级联动的注意事项的相关文章

JS实现省市二级联动

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF

js实现菜单二级联动

代码如下,以便自己以后方便查阅: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>菜单二级联动效果</title> <

JS中document.createElement()用法及注意事项

今天处理了一个日期选择器的ie和ff的兼容问题,本来这种情况就很难找错误,找了好久才把错误定位到js中创建元素的方法document.createElement(),这个方法在ie下支持这样创建元素 var inputObj    = document.createElement     ("<input type='text' size='8' style='border:0px;border-bottom:2px solid #c0c0c0;'" readonly >&

原生JS的地区二级联动,很好理解的逻辑

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

js中使用this的一些注意事项

先看看这段代码 var x =9; var fobj ={ x:1, test:function(callback){ var x= 2; callback(); } } function pp(){ var x = 3; fobj.test(function(){ alert(this.x)//9 }) } pp(); 上面这段代码打印出的是 9 ,可以看到test的调用者是fobj,可是在test中执行回调时callback();这调代码前面是空的.所以其实是有一个作为的全局调用了这个回调,

JS练习之二级联动

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <select id="provinces"> <option value="">请选择省份</optio

js中的计时器

在JS中做二级菜单时,被一个鼠标移出时隐藏的小问题困扰了很久. <script> function Menu(id){ var _this=this; this.obj=document.getElementById(id); this.trigger=getFirstChild(this.obj); this.menuOne=getLastChild(this.obj); this.menuOneLi=getChildren(this.menuOne); this.menuOneLiA=[]

利用JS实现一个简单的二级联动菜单

前几天在看js的相关内容,所以就简单写了一个二级联动菜单.分享一下. 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JS实现二级联动菜单</title> 6 </head> 7 <body> 8 <form name="form1"

(转)JavaScript html js 地区二级联动,省市二级联动,省市县js+xml三级联动

JavaScript html js 地区二级联动,省市二级联动,省市县js+xml三级联动 原文链接:http://heisetoufa.iteye.com/blog/353974 比较好的二级联动: 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <HTML> 3 <HEAD> 4 <TITLE> New Document </TITLE>