`

js解析XML实现省市二级联动

阅读更多

city.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<cities>
 <province name="北京">
  <city>大兴</city>
  <city>昌平</city>
  <city>朝阳</city>
  <city>海淀</city>
  <city>东城</city>
  <city>西城</city>
 </province>
 <province name="河北">
  <city>石家庄</city>
  <city>保定</city>
  <city>邢台</city>
  <city>张家口</city>
  <city>廊坊</city>
  <city>承德</city>
 </province>
 <province name="河南">
  <city>郑州</city>
  <city>安阳</city>
  <city>平顶山</city>
  <city>开封</city>
  <city>商丘</city>
  <city>洛阳</city>
 </province>

</cities>

 

 select.html 文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>select.html</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; charset=UTF-8">
   
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>
 
  <body><br>
    <span>
    <select id="province">
    <option> 
     请选择省
    </option>
    </select></span>
   
    <span>
    <select id="cities">
    <option>
  请选择相应省下面的市
 </option>
    </select>
    </span>
  </body>
</html>
<script type="text/javascript">
 window.onload = function() {
  var xmlDom;
  try{
  //针对的是IE浏览器 创建一个空的微软 XML 文档对象
  xmlDom = new ActiveXObject("Microsoft.XMLDOM");
  }catch(e){
   try{
    //在 Firefox 及其他浏览器中的 XML 解析器
   //创建一个空的 XML 文档对象。
    xmlDom = document.implementation.createDocument("","",null);
   }catch(er){
   }
  }
  //关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行
  xmlDom.async = "false";
  //解析器加载名为 "xxx.xml" 的 XML 文档、
  xmlDom.load("city.xml");
  //获得根节点
  var root = xmlDom.documentElement;
  //获得省节点
  var provinces = root.childNodes;
  //获得第一个下拉框对象
  var province = document.getElementById("province");
  //把XML省节点的值添加到省下拉列表中
  for(var i=0;i<provinces.length;i++) {
   //获得省节点的属性为name的属性值
   var name = provinces[i].getAttribute("name");
   //创建一个option
   var opt = document.createElement("option");
   //创建省下拉列表中OPTION的值为得到的属性值的值
   opt.appendChild(document.createTextNode(name));
   //添加到下拉列表中
   province.appendChild(opt);
  }
  
  //得到第二个下拉对象
  var cities = document.getElementById("cities");
  province.onchange = function() {
   //获得第一个下拉框对象
   var pce = document.getElementById("province");
   //获取下拉框对象的所有OPTION
   var opts = pce.options;
   //获取被选中的下拉对象
   var opt1 = opts[pce.selectedIndex];
   //获取被选中的下拉文本对象的值(OPTION中间的文本)
   var name = opt1.text;   //opt1.innerHTML
   for(var i=0;i<provinces.length;i++) {
    //获取省节点的name属性值
    var name1 = provinces[i].getAttribute("name");
    //判断如果选中文本本的值,等于<province>属性值就把这个属性值的city值添加到第二个下拉列表中
    if(name = name1) {
     //清空下拉列表的值
     cities.length = 1;
     //得到当前选中的<province>对象
     var pros = provinces[i];
     //得到当前选中的<province>的子节点
     var citys = pros.childNodes;
     for (var j=0;j<citys.length;j++) {
      //创建option对象
      var opt1 = document.createElement("option");
      opt1.appendChild(document.createTextNode(citys[j].firstChild.nodeValue));
      //把创建的option对象添加到第二个下拉列表中
      cities.appendChild(opt1);
     }
    }
   }
  }
 }


为啥这个程序只能兼容IE?给找找原因吧!

分享到:
评论

相关推荐

    jquery解析xml并实现二级联动

    本主题将深入探讨如何使用jQuery解析XML数据,并利用这些数据实现省市二级联动的效果。这种功能常见于地理选择,用户在选择省份后,下拉菜单会自动更新展示对应省份的城市选项。 首先,我们需要理解XML(Extensible...

    JQuery 解析XML省 市 县 三级联动

    总的来说,实现"JQuery 解析XML省市区县三级联动"涉及的主要技术包括JQuery的事件处理、XML解析、AJAX通信、DOM操作等,这些是Web开发中的基础技能,对于提升用户交互体验至关重要。在实际开发中,开发者还需要考虑...

    JavaWeb通过ajax、json实现省市二级联动

    以下将详细介绍如何使用这些技术实现省市二级联动。 首先,我们需要一个数据库存储省市区信息。假设我们有一个名为`province_city`的表,包含`id`(主键)、`province_name`(省份名)、`city_name`(城市名)和`...

    json格式省市二级联动xml文件

    本主题主要关注如何使用XML文件实现省市二级联动效果,以及这种联动在实际应用中的意义。 在网页或应用设计中,省市联动通常用于地理信息的选择,例如用户在填写地址时,先选择省份,接着根据省份选择城市。这种...

    Ajax实现省市二级联动

    总的来说,"Ajax实现省市二级联动"是一个典型的前端动态交互案例,它涉及到了JavaScript基础、Ajax通信、JSON数据处理以及DOM操作等多个知识点,是学习和掌握Ajax技术的良好实践。通过这种方式,我们可以构建更加...

    SSM框架 用Jquery和JSON完成的Ajax 实现省市二级联动

    在这个项目中,我们看到一个基于SSM实现的省市二级联动功能,利用了Ajax、Jquery和JSON技术。这个功能通常用于在前端展示时,用户选择省份后,自动加载并显示对应的市列表,提供了便捷的交互体验。 首先,我们需要...

    JS_XML省市县三级联动

    总结来说,"JS_XML省市县三级联动"是利用JavaScript和XML技术实现的动态交互功能,通过合理的数据结构和事件处理,实现了下拉菜单间的联动效果,提高了用户在选择地址时的效率和便利性。这一技术在现代网页开发中...

    dropdownlist 省市二级联动

    在网页开发中,"dropdownlist 省市二级联动"是一种常见的交互设计,主要用于实现用户在选择省份时,下方的下拉列表会自动更新为对应省份的城市,无需页面整体刷新。这种功能通常应用于地址填写、订单提交等场景,...

    一个jsp文件模拟xml文件,通过js调用解析后,在新的jsp页面上显示省市二级联动。

    本示例中提到的“一个jsp文件模拟xml文件,通过js调用解析后,在新的jsp页面上显示省市二级联动”是一个典型的前端与后端交互的场景,涉及到的技术点主要包括JSP、XML和JavaScript,以及前端的动态数据处理和页面...

    JS省市区三级联动htm+xml

    总的来说,“JS省市区三级联动.htm+xml”是一个结合了JavaScript、XML和HTML技术的解决方案,实现了动态的省市区选择功能。开发者可以根据自己的需求,如数据来源(可能是动态从服务器获取而非静态XML文件)、样式...

    省市二级3种实现方法(XML、JS、SQL).rar

    通过JavaScript解析XML文件,可以实现省市二级联动的效果。首先加载XML文件,然后根据选择的省份动态加载对应的城市数据。 **JavaScript(JS)** 是网页开发中的主要脚本语言,用于处理客户端的交互。在省市二级...

    省市区级三级联动Jquery_xml版本

    在三级联动中,当用户在第一级(省)选择一个选项时,第二级(市)的下拉列表会自动更新,显示与选定省份相关的城市。同样,当用户在第二级选择后,第三级(区/县)的列表也会随之更新。这种联动效果提升了用户体验...

    全国各省市二级联动.rar

    在本例中,"全国各省市二级联动.rar" 提供了一个使用 JavaScript 操作 XML 文件来实现这一功能的示例。 首先,我们要理解什么是二级联动。在Web界面中,二级联动通常指的是两个下拉列表(或选择框)之间存在的关联...

    php+ajax二级联动

    在二级联动场景中,PHP主要负责后端逻辑,包括获取数据库中的数据并以JSON或XML格式返回给前端。 AJAX(Asynchronous JavaScript and XML)则是一种在不重新加载整个网页的情况下,更新部分网页的技术。尽管XML在...

    Ajax省市二级联动

    在网页开发中,"Ajax省市二级联动"是一个常见的功能,用于实现用户在选择省份时,城市下拉框自动更新对应省内的城市数据。这个功能提高了用户体验,减少了不必要的页面刷新,使得用户能够在不离开当前页面的情况下...

    js二级和js_xml三级联动

    在“js二级和js_xml三级联动”中,JavaScript的主要作用是读取XML数据,解析出省份、城市和县的信息,并在用户选择某个级别时,动态更新下一级别的选项。通过事件监听和DOM操作,js可以实现实时响应用户的操作,展示...

    js+xml四级联动

    在IT行业中,"js+xml四级联动"是一种常见的前端交互技术,主要用于实现多级下拉菜单或者选择器的联动效果。这种技术通常应用于如地区选择、类别筛选等场景,用户在选择某一选项时,后续的下拉框会根据前一个选项的...

    ajax 省市二级联动

    在网页开发中,"AJAX 省市二级联动"是一种常见的交互设计,它使得用户在选择省份时,城市选项能够自动更新而无需重新加载整个页面。这种技术大大提升了用户体验,尤其是在处理大量的地理数据或者需要实时更新信息的...

    省市二级连动下拉框(JS+XML)

    本案例中,开发人员选择使用 **JavaScript (JS)** 和 **XML** 来实现省市二级联动下拉框功能。这种方式的优点是不需要服务器端的支持,只需要前端技术就可以完成,因此具有很好的灵活性和轻量性。 #### 三、XML文件...

Global site tag (gtag.js) - Google Analytics