用js写二级下拉列表框
2017-05-23 15:50
169 查看
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <select id="provinceID"> <option>选择省份</option> <option>吉林省</option> <option>辽宁省</option> <option>山东省</option> </select> <select id="cityID"> <option>选择城市</option> </select> <script type="text/javascript"> //定位省份下位框,同时添加内容改变事件 document.getElementById("provinceID").onchange=function(){ //清空原城市下拉框中的内容 var citySelectElement = document.getElementById("cityID"); var cityElementArray = citySelectElement.options; var size = cityElementArray.length; if(size > 1){ for(var i=size-1;i>0;i--){ citySelectElement.removeChild(cityElementArray[i]); } } //定位用户选择的选项 var optionElement = this[this.selectedIndex]; //取得用户选中选项的内容,比如:山东省 var option = optionElement.firstChild.nodeValue; //加载XML文件 var xmlDocument = loadXML(); //去XML文件中查找<province>标签的集合 var provinceElementArray = xmlDocument.getElementsByTagName("province"); //取得<province>标签的个数 size = provinceElementArray.length; var provinceElement = null; //循环迭代 for(var i=0;i<size;i++){ //判段下位框中的内容是否与XML文件中的name属性相同 if(provinceElementArray[i].getAttribute("name")==option){ provinceElement = provinceElementArray[i]; break; } } if(provinceElement!=null){ //取得该<province>下对应的所有<city>子标签 var cityElementArray = provinceElement.getElementsByTagName("city"); //取得该<province>下对应的<city>子标签的个数 size = cityElementArray.length; for(var i=0;i<size;i++){ //取得该<city>标签的内容 var city = cityElementArray[i].firstChild.nodeValue; //创建<option>对象 var optionElement = document.createElement("option"); //创建文本对象 var txtElement = document.createTextNode(city); //将文本对象加入到<option>对象 optionElement.appendChild(txtElement); //将新创建的<option>对象加入到城市下拉框中 document.getElementById("cityID").appendChild(optionElement); } } } //加载xml文件 function loadXML(){ try{ //IE xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); }catch(e){ //非IE try { xmlDoc=document.implementation.createDocument("","",null); }catch(e){ alert(e.message); return; } } //异步加载关闭,即同步操作 //请求->响应->请求->响应(同步) //请求->请求->请求->响应->响应->响应(异步) xmlDoc.async=false; xmlDoc.load("cities.xml"); return xmlDoc; } </script> </body> </html>
相关文章推荐
- JavaScript实现二级、多级(N级)联动下拉列表框更新版(续)- 四级联动的演示
- js+div模拟下拉列表框
- IE6情况下使用jquery.bgiframe.js插件解决下拉列表框被遮盖BUG
- 【荐】JS+CSS全力打造的一级横向滑动,二级竖向下拉综合菜单
- 二级联动下拉列表 asp+js【转】
- 另类无刷新、联动下拉列表框(二级+XMLHttpRequest)
- JS,Jquery获取select,dropdownlist,checkbox 下拉列表框的值
- 下拉列表框JS 写 代码
- JS分级下拉列表框
- JS,Jquery获取,dropdownlist,checkbox 下拉列表框的值
- js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航 .txt
- 二级下拉关联菜单 js
- JS无刷新二级联动省市下拉列表
- js下拉列表框操作总结
- js二级联动下拉列表
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用
- 【荐】JS一级横向滑动,二级竖向下拉的综合菜单
- JS,Jquery获取,dropdownlist,checkbox 下拉列表框的值