`
leng_cn
  • 浏览: 301875 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过JAVASCRIPT及DOM实现对国家省份及城市级联查询的方法

阅读更多

前段时间做一个项目,需要动态的从后台数据里面里面提取相应国家、省份及城市的信息,实现的过程就是通过下拉菜单先选择一个国家,然后在另一个下拉框里面是这个国家的省份,再通过选择的省份填充另外一个城市的下拉框,其实通过级联查询的方式完全可以实现,或者一次性通过数组读取国家省份及城市的信息,然后填充这几个下拉框,觉得这样也不方便,想来想去何不用DOM的方式来实现了,思路如下:

第一,通过后台程序生成一个XML文件,节点分别为:国家——》省——》城市

第二,通过前台的的DOM提取这个XML文件

第三,通过脚本加载这个XML文件到相应的下拉框,首先加载国家,当选择某个国家的时候通过XML的查询语句再填充相应的省,依次类推,填充省下的城市,实现级联查询,省去了不少麻烦:)

生成XML文件的方式在这里就不提了,只把相应读XML文件的脚本贴出来,便于自己记忆:)

<html>
  <head>
    <title>city.htm</title>
   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; GBK">
    <script language="javascript">
    var xmlDoc;
    function init(initProvince, initCity) {//参数1:初始化时的省;参数2:初始化时的城市
     var sltOne = document.getElementById("classId");
     xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.load("cityXml.jsp");
  if (xmlDoc.parseError.errorCode != 0) {
     var myErr = xmlDoc.parseError;
     alert("You have error " + myErr.reason);
  } else {
     //alert(xmlDoc.xml);
     var oNodeList;
     var sonNode;
     var oNode;
     objNodeList = xmlDoc.getElementsByTagName("province");
   for (var i=0; i<objNodeList.length; i++) {
    oNode = objNodeList.item(i)
    var opt = document.createElement("OPTION");
    sltOne.add(opt);
    opt.innerText = oNode.getAttribute("name");
    opt.value = oNode.getAttribute("id");
    if(opt.innerValue == initProvince)
     opt.selected = true;
   }
   if(initCity.length > 0 && initProvince.length > 0)
    getCityByProvince(initProvince, initCity);
  }
 }
 
 function getCityByProvince(initProvince, initCity) {
  var sltTwo = document.getElementById("NclassIdt");
  sltTwo.length = 0;
  var curNode;//当前节点
  var cNode;//节点
  var xpath;//路径
  var name;//区域名称
  name = initProvince;//event.srcElement.value;
  xpath = "/catalog/province[@name='" + name + "']/city"
  //alert(xpath);
  cNode = xmlDoc.selectNodes(xpath);
  //alert(cNode.length);
  if(cNode.length == 0) {
   var opt = document.createElement("OPTION");
   sltTwo.add(opt);
   opt.value = "null";
   opt.innerText = "选择城市";
  }
  for(var i=0;i<cNode.length;i++) {
   curNode = cNode.item(i);
   var opt = document.createElement("OPTION");
   sltTwo.add(opt);
   opt.value = curNode.getAttribute("name");
   opt.innerText = curNode.getAttribute("name");
   if(opt.value == initCity)
    opt.selected = true;
  }
  
 }
</script>
   
  </head>
 
  <body onload="init('','')">
    This is my HTML page. <br>
    <select id=sltOne onchange="getVenuesByLocation(this.value)">
     <option value="null">选择省
    </select>
    <select id=sltTwo>
     <option value="null">选择城市
    </select>
  </body>
</html>

分享到:
评论

相关推荐

    JS 省份城市级联选择

    "JS 省份城市级联选择"就是这样一个解决方案,它利用JavaScript实现了一个高效的、无刷新的省份城市选择功能。这个功能对于提升用户体验至关重要,因为它减少了页面加载次数,提高了交互速度。 首先,我们来看...

    web页面实现省份和城市的级联

    以上就是关于"web页面实现省份和城市的级联"的基本原理和实现方法。通过这个过程,我们可以学习到HTML表单元素的使用、JavaScript事件处理和DOM操作,以及如何结合静态数据动态生成界面。这在Web开发中是非常基础且...

    国家省份城市级联菜单

    标题中的“国家省份城市级联菜单”指的是在用户界面设计中常见的一种交互元素,它用于让用户选择国家、省份(或州)以及城市,通常在填写地址或者设置地理位置时使用。这种菜单一般会以级联的方式呈现,即选择一个...

    省份与城市级联-javascript

    在IT领域,尤其是在Web开发中,"省份与城市级联"是一种常见的交互设计,它用于构建下拉菜单,用户在选择省份后,城市下拉菜单会动态更新展示对应省份的城市。这种功能通常由JavaScript实现,因为JavaScript是浏览器...

    javascript 城市级联

    JavaScript 城市级联是一种常见的前端交互功能,用于在两个或多个下拉列表之间实现联动效果,通常是省份和城市,用户选择一个省份后,城市下拉列表会动态更新为对应省份的城市。这种功能广泛应用于地址填写、物流...

    javaScript城市级联选择

    JavaScript城市级联选择是一种常见的前端交互功能,常用于在线表单中,用户在选择省份后,下拉框会自动更新为对应省份的城市选项,以此类推到区县或街道。这种功能大大提升了用户体验,减少了手动输入的繁琐。下面将...

    jQuery城市级联插件

    在Web开发中,城市级联选择框是一种常见的交互元素,它能够帮助用户方便地从国家、省份、城市等层级中进行选择。jQuery作为一款广泛使用的JavaScript库,提供了丰富的功能来简化这类复杂交互的实现。本文将深入探讨...

    jQuery实现级联地区选择

    "jQuery实现级联地区选择"这个主题就是关于如何利用jQuery库来创建一个动态联动的省份-城市选择器。这个实例包含了JSP(JavaServer Pages)、JavaScript和CSS三个主要部分,旨在提供一种高效、用户友好的选择体验。 ...

    js实现全国省份城市高校级联

    在JavaScript(简称js)开发中,经常会遇到需要创建级联选择的效果,比如全国省份、城市、高校的选择。这种级联菜单能够帮助用户...通过学习和理解这些文件,可以更好地掌握js实现全国省份城市高校级联的具体实现方法。

    城市级联实例 4种实现方式 实在好用

    至于文件列表中的"4种全面省份城市级联例子.rar",这很可能是一个包含示例代码和数据的压缩包,提供了四种不同实现方法的完整示例。下载并解压后,开发者可以参考这些代码来学习和理解城市级联的实现过程。而"3C3N...

    买车票城市级联效果

    这通常通过DOM操作来实现,如`innerHTML`属性的设置或者`appendChild`方法的调用。 5. **优化用户体验**:为了提高用户体验,可以添加搜索功能,让用户能快速找到所需城市。此外,还可以加入缓存策略,避免每次选择...

    城市级联完整实例(带数据库.sql文件) jquery+ajax

    5. **数据库设计**: 数据库设计是实现城市级联的关键,一般会有一个包含国家信息的表和一个包含城市信息的表,城市表会有一个外键关联到国家表。这样,通过查询可以轻松地获取到某个国家的所有城市。 6. **后端接口...

    省份城市区域div级联 超好工具js jQuery

    在IT行业中,尤其是在前端开发领域,我们经常遇到需要实现省份城市区域选择的功能,这通常涉及到用户界面中的级联下拉菜单。"省份城市区域div级联 超好工具js jQuery"是一个这样的解决方案,它利用JavaScript(特别...

    脚本实现下拉框省份级联

    总结,实现“脚本实现下拉框省份级联”涉及到JavaScript的基础知识,包括事件处理、DOM操作、数据获取与处理、以及用户体验优化等多个方面。通过这个实例,开发者可以深入理解和实践这些技能,提升前端开发能力。

    Ajax实现城市级联.rar

    这个"Ajax实现省份&城市级联"的主题涉及到Web开发中的动态交互设计,特别是前端部分,它允许用户在选择省份后,城市列表能够即时更新,提供无缝的用户体验。 在传统的网页交互中,如果要实现省份和城市的级联效果,...

    H5城市级联插件

    数据结构可能包含国家、省份、城市等层次,以便于动态构建级联列表。 2. 动态加载:为了提高页面加载速度,城市数据可能按需加载。当用户选择上级区域(如省份)时,插件会异步加载对应的城市数据,这通常借助Ajax...

    JavaScript级联下拉特效制作

    这种效果可以用来展示层级关系的数据,比如国家、省份、城市这样的地理信息。在这个案例中,我们将深入探讨如何使用JavaScript来实现这一功能。 首先,我们需要理解JavaScript的基础知识。JavaScript是一种脚本语言...

Global site tag (gtag.js) - Google Analytics