省市区三级级联(mark)
2013-07-16 10:30
204 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb18030" /> <title>三级级联训练</title> <script type="text/javascript"> //IE创建 xml dom的方法 function createIeXmlDom(){ var arr=['MSXML2.DOMDocument.6.0','MSXML2.DOMDocument.5.0','MSXML2.DOMDocument.4.0','MSXML2.DOMDocument.3.0','MSXML2.DOMDocument','Microsoft.XMLDOM']; for(var i=0;i<arr.length;i++){ try{ //通过MSXML的版本创建DOM return new ActiveXObject(arr[i]); }catch(ex){ return null; } } throw new Error('MSXML组件还没有安装'); }//end function judge(){ var xmlDom; if(window.ActiveXObject){ //ie下 xmlDom=createIeXmlDom(); }else if(document.implementation&&document.implementation.createDocument){ //支持W3C的浏览器 xmlDom=document.implementation.createDocument('','',null); //第一个指定文档的命名空间 根表签名 doc类xing }else{ throw new Error('您的浏览器不支持'); } return xmlDom; } window.onload=function(){ //创建XMLDOM var xmldom=judge(); //同步执行方式 xmldom.async=false; //载入xml文档 xmldom.load('city.xml'); //获取对应的标签 var showsheng=document.getElementById('sheng'); var showshi=document.getElementById('shi'); var showxian=document.getElementById('xian'); //可返回文档的根节点。 var root=xmldom.documentElement; //获取根节点下的所有的节点 var sheng=root.childNodes; //变量所有的省份,并添加到showsheng for(var i=0;i<sheng.length;i++){ addOption(sheng[i],showsheng); } var city; showsheng.onchange=function(){ //获取被选择省份的index下标 var index=showsheng.options.selectedIndex; showshi.length=1;//清空原来的市区 showxian.length=1;//清空原来的县 var flag; if(window.ActiveXObject){//ie下 city=sheng[index-1].childNodes;//获取选中的省份下面的所有子节点 for(var i=0;i<city.length;i++){ addOption(city[i],showshi); } }else{//w3c下 var sname=showsheng.value; var proname; var cities for(i=0;i<sheng.length;i++){ if(sheng[i].nodeType==1){//是元素节点时 proname=sheng[i].getAttribute('name');; if(sname==proname){ cities=sheng[i].childNodes; for(var j=0;j<cities.length;j++){ if(cities[j].nodeType==1){ addOption(cities[j],showshi); } } } } } } } var xian; showshi.onchange=function(){ var index=showshi.options.selectedIndex; showxian.length=1;//清空原来的县 var flag; if(window.ActiveXObject){ xian=city[index-1].childNodes;//获取选中的省份下面的所有子节点 for(var i=0;i<xian.length;i++){ addOption(xian[i],showxian); } }else{ var cname=showshi.value; var xians; var cityname; var cities; for(i=0;i<sheng.length;i++){ if(sheng[i].nodeType==1){ cities=sheng[i].childNodes; for(var j=0;j<cities.length;j++){ if(cities[j].nodeType==1){ cityname=cities[j].getAttribute('name'); if(cityname==cname){ xians=cities[j].childNodes; for(var k=0;k<xians.length;k++){ if(xians[k].nodeType==1){ addOption(xians[k],showxian); } } } } } } } } } } function addOption(arrs,obj){ if(arrs.nodeType==1){ //创建元素节点 var opt=document.createElement('option'); //创建文本节点 opt.appendChild(document.createTextNode(arrs.getAttribute('name'))); opt.setAttribute('value',arrs.getAttribute('name')); //把option附加上去 obj.appendChild(opt); } } </script> </head> <body> <div> <select id="sheng" style="width:160px"><option value="0">请选择省份</option></select>省份<br /> <select id="shi" style="width:160px"><option value="0">请选择市区</option></select>市区<br /> <select id="xian" style="width:160px"><option value="0">请选择县</option></select>县<br /> </div> </body> </html>
相关文章推荐
- 兼容性好的省市三级级联菜单
- 用dom解析xml的方法实现省市县三级级联菜单
- CAT XQX --- 省市三级级联实现说明
- 全国省市级联菜单和省市县三级无刷新菜单
- 全国省市级联菜单和省市县三级无刷新菜单
- 解析XML文件实现省市县三级级联下拉菜单
- C# 省市县三级级联 分类: .NET 2012-11-04 15:31 1541人阅读 评论(0) 收藏
- C# 省市县三级级联
- js 实现 省市县三级级联
- 省市县三级级联
- CAT XQX --- 省市三级级联实现说明
- js省市级联 三级联动菜单
- jquery 省市级联菜单特效(省市区三级级联和省市二级级联)
- js 省市县三级级联
- JavaScript实现省市县三级级联特效
- jquery 选择类似省市县的三级级联
- 省市县三级级联的实现
- 用dom解析xml文件实现省市县三级菜单的级联
- 省市县三级联动无刷新(附带数据sql)
- jQuery实现省市县三级联动菜单