开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1596|回复: 0
收起左侧

[JS例程分享] 三级地市联动菜单演示 兼容 ie chrome

[复制链接]

结帖率:33% (1/3)
发表于 2013-2-28 19:15:59 | 显示全部楼层 |阅读模式   上海市上海市
  1. /**
  2. * @name                jQuery Cascdejs plugin
  3. * @author                zdy
  4. * @version         1.0
  5. */

  6. //首先需要初始化
  7. var xmlDoc;
  8. var TopnodeList;
  9. var citys;
  10. var countyNodes;
  11. var nodeindex = 0;
  12. var childnodeindex = 0;
  13. //获取xml文件
  14. function Init(v1,v2,v3) {
  15.     //打开xlmdocm文档
  16.     xmlDoc = loadXmlFile('Area.xml');
  17.     var dropElement1 = document.getElementById("Select1");
  18.     var dropElement2 = document.getElementById("Select2");
  19.     var dropElement3 = document.getElementById("Select3");
  20.     RemoveDropDownList(dropElement1);
  21.     RemoveDropDownList(dropElement2);
  22.     RemoveDropDownList(dropElement3);
  23.     if (window.ActiveXObject) {
  24.         TopnodeList = xmlDoc.selectSingleNode("address").childNodes;
  25.     }
  26.     else {
  27.         TopnodeList = xmlDoc.childNodes[0].getElementsByTagName("province");      
  28.      }  
  29.     if (TopnodeList.length > 0) {
  30.         //省份列表
  31.         var county;
  32.         var province;
  33.         var city;
  34.         for (var i = 0; i < TopnodeList.length; i++) {
  35.             //添加列表项目
  36.             county = TopnodeList[i];         
  37.             var option = document.createElement("option");
  38.             option.value = county.getAttribute("name");
  39.             option.text = county.getAttribute("name");
  40.             if (v1 == option.value) {
  41.                 option.selected = true;
  42.                 nodeindex = i;
  43.             }
  44.             dropElement1.add(option);
  45.         }
  46.         if (TopnodeList.length > 0) {
  47.             //城市列表
  48.             citys = TopnodeList[nodeindex].getElementsByTagName("city")
  49.             for (var i = 0; i < citys.length; i++) {
  50.                 var id = dropElement1.options[nodeindex].value;
  51.                 //默认为第一个省份的城市
  52.                 province = TopnodeList[nodeindex].getElementsByTagName("city");
  53.                 var option = document.createElement("option");
  54.                 option.value = province[i] .getAttribute("name");
  55.                 option.text = province[i].getAttribute("name");
  56.                 if (v2 == option.value) {
  57.                     option.selected = true;
  58.                     childnodeindex = i;
  59.                 }
  60.                 dropElement2.add(option);
  61.             }
  62.             if (province .length> 0) {
  63.                 //县列表
  64.                 for (var i = 0; i < TopnodeList[0].childNodes.length; i++) {
  65.                     var id = dropElement2.options[0].value;
  66.                     //默认为第一个城市的第一个县列表
  67.                     city = province[childnodeindex].getElementsByTagName("county");;
  68.                     var option = document.createElement("option");
  69.                     option.value = city[i].getAttribute("name");
  70.                     option.text = city[i].getAttribute("name");
  71.                     if (v3 == option.value) {
  72.                         option.selected = true;
  73.                     }
  74.                     this.document.getElementById("Select3").add(option);
  75.                 }
  76.         
  77.             }
  78.         }
  79.     }
  80. }

  81. /*
  82. //依据省设置城市,县
  83. */
  84. function selectCity() {
  85.     var dropElement1 = document.getElementById("Select1");
  86.     var name = dropElement1.options[dropElement1.selectedIndex].value;     
  87.     countyNodes = TopnodeList[dropElement1.selectedIndex];      
  88.     var province = document.getElementById("Select2");
  89.     var city = document.getElementById("Select3");
  90.     RemoveDropDownList(province);
  91.     RemoveDropDownList(city);
  92.     var citynodes;
  93.     var countycodes;
  94.     if (window.ActiveXObject) {
  95.         citynodes = xmlDoc.selectSingleNode('//address/province [@name="' + name + '"]').childNodes;
  96.     } else {
  97.         citynodes = countyNodes.getElementsByTagName("city")
  98.     }
  99.     if (window.ActiveXObject) {
  100.         countycodes = citynodes[0].childNodes;
  101.     } else {
  102.         countycodes = citynodes[0].getElementsByTagName("county")
  103.     }
  104.   
  105.     if (citynodes.length > 0) {
  106.         //城市         
  107.         for (var i = 0; i < citynodes.length; i++) {
  108.             var provinceNode = citynodes[i];
  109.             var option = document.createElement("option");
  110.             option.value = provinceNode.getAttribute("name");
  111.             option.text = provinceNode.getAttribute("name");
  112.             province.add(option);
  113.         }
  114.         if (countycodes.length > 0) {
  115.             //填充选择省份的第一个城市的县列表
  116.             for (var i = 0; i < countycodes.length; i++) {
  117.                 var dropElement2 = document.getElementById("Select2");
  118.                 var dropElement3 = document.getElementById("Select3");
  119.                 //取当天省份下第一个城市列表
  120.                
  121.                 //alert(cityNode.childNodes.length);
  122.                 var option = document.createElement("option");
  123.                 option.value = countycodes[i].getAttribute("name");
  124.                 option.text = countycodes[i].getAttribute("name");
  125.                 dropElement3.add(option);
  126.             }
  127.         }
  128.     }
  129. }
  130. /*
  131. //设置县,区
  132. */
  133. function selectcounty() {
  134.     var dropElement1 = document.getElementById("Select1");
  135.     var dropElement2 = document.getElementById("Select2");
  136.     var name = dropElement2.options[dropElement2.selectedIndex].value;
  137.     var city = document.getElementById("Select3");  
  138.     var countys = TopnodeList[dropElement1.selectedIndex].getElementsByTagName("city")[dropElement2.selectedIndex].getElementsByTagName("county")
  139.     RemoveDropDownList(city);
  140.     for (var i = 0; i < countys.length; i++) {
  141.         var countyNode = countys[i];
  142.         var option = document.createElement("option");
  143.         option.value = countyNode.getAttribute("name");
  144.         option.text = countyNode.getAttribute("name");
  145.         city.add(option);
  146.     }
  147. }
  148. function RemoveDropDownList(obj) {
  149.     if (obj) {
  150.         var len = obj.options.length;
  151.         if (len > 0) {  
  152.             for (var i = len; i >= 0; i--) {
  153.                 obj.remove(i);
  154.             }
  155.         }
  156.     }

  157. }
  158. /*
  159. //读取xml文件
  160. */
  161. function loadXmlFile(xmlFile) {
  162.     var xmlDom = null;
  163.     if (window.ActiveXObject) {
  164.         xmlDom = new ActiveXObject("Microsoft.XMLDOM");
  165.         xmlDom.async = false;
  166.         xmlDom.load(xmlFile) || xmlDom.loadXML(xmlFile);//如果用的是XML字符串//如果用的是xml文件  
  167.     } else if (document.implementation && document.implementation.createDocument) {
  168.         var xmlhttp = new window.XMLHttpRequest();
  169.         xmlhttp.open("GET", xmlFile, false);
  170.         xmlhttp.send(null);
  171.         xmlDom = xmlhttp.responseXML;
  172.     } else {
  173.         xmlDom = null;
  174.     }
  175.     return xmlDom;
  176. }

复制代码

本帖被以下淘专辑推荐:

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表