`

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>


city.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>city.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>

<h1>
解析xml文件实现省市级联下拉菜单
</h1>

<div>

<span> <select id="province" name="province">
<option>
请选择省
</option>
</select> </span>

<span> <select id="cities" name="city">
<option>
请选择相应省下面的市
</option>
</select> </span>

</div>
</body>
</html>

<script>
window.onload = function() {
var xmlDom;
try {
//针对的是IE浏览器 创建一个空的微软 XML 文档对象
xmlDom = new ActiveXObject("Microsoft.XMLDOM");
} catch (err) {
try {
//在 Firefox 及其他浏览器中的 XML 解析器
//创建一个空的 XML 文档对象。
xmlDom = document.implementation.createDocument("", "", null);
} catch (e) {
}
}

//关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行
xmlDom.async = "false";

//解析器加载名为 "xxx.xml" 的 XML 文档、
xmlDom.load("city.xml");

//获取xml文件的根节点
var root = xmlDom.documentElement;

//获取根节点下面的省节点
var provinces = root.childNodes;

var province = document.getElementById("province");
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");
var opts = pce.options;
var opt1 = opts[pce.selectedIndex];

var name = opt1.innerHTML;
for ( var i = 0; i < provinces.length; i++) {
//获取省节点的name属性的值
var name1 = provinces[i].getAttribute("name");
if (name == name1) {
    cities.length=1;//每次改变的时候清空
var pros = provinces[i];
var citys = pros.childNodes;
alert(citys.length+"====================");
for ( var j = 0; j < citys.length; j++) {
//创建一个option
var opt1 = document.createElement("option");
//为option添加文本
opt1.appendChild(document.createTextNode(citys[j].firstChild.nodeValue));
//添加到父节点中
cities.appendChild(opt1);
}
}

}

}

}
</script>

分享到:
评论

相关推荐

    JavaScript解析XML实现多级级联下拉列表

    总结来说,实现JavaScript解析XML实现多级级联下拉列表的关键在于理解XML的结构、使用DOMParser解析XML,以及处理级联下拉列表的事件和逻辑。通过这些技术,我们可以创建出高效且易于维护的级联选择功能,提升用户的...

    ajax实现下拉列表级联

    在本文中,我们将深入探讨如何使用Ajax技术来实现下拉列表的级联效果,这是一个常见的交互功能,特别是在数据录入和筛选场景中。我们将基于EJB(Enterprise JavaBeans)技术连接数据库,以动态加载和更新下拉列表...

    javaScript下拉列表级联更新

    在javaScript中使下拉列表实现级联更新

    ajax+struts2.0+jsp下拉列表级联

    在这个“ajax+struts2.0+jsp下拉列表级联”的示例中,我们将探讨如何利用这三个技术实现这种功能。 首先,AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页...

    级联下拉列表工具类,js实现

    ### 级联下拉列表工具类:JS实现详解 #### 概述 级联下拉列表是一种在前端开发中常见的交互方式,特别是在处理多层级数据时,它能有效地帮助用户进行选择。本文将深入分析一个名为`ComboSelectFactory`的...

    JavaScript解析XML实现两级级联下拉列表

    在本文中,我们将深入探讨如何使用JavaScript来解析XML数据,并基于这些数据实现一个两级级联下拉列表。这种功能在Web开发中非常常见,尤其是在构建动态表单时,用户需要根据上一级的选择来筛选下一级的选项。我们将...

    中国省市xml文档,用于下拉菜单级联变动

    中国省市xml文档,用于下拉菜单级联变动

    动态实现下拉列表框三级级联查询

    在IT领域,动态实现下拉列表框的三级级联查询是一项常见的前端交互功能,它能够为用户提供更加便捷的导航和筛选体验。在这个场景中,我们使用JSP(JavaServer Pages)脚本语言来实现这一功能。JSP是Java平台上的...

    js解析XML文件实现省市县三级级联下拉菜单

    在JavaScript(JS)中解析XML文件来实现省市县三级级联下拉菜单是一种常见的前端开发技术,主要用于构建交互式Web应用程序。这篇博文链接提供了一个具体的示例,通过XML数据存储省市县信息,然后使用JavaScript进行...

    省市下拉列表的JS联动实现

    利用Javascript技术实现省市下拉列表的联动。

    省市区镇 级联 js vue

    省市区镇 级联 js vue 省市区镇 级联 js vue 省市区镇 级联 js vue

    jQuery ajax JSON 下拉列表框级联

    在Web开发中,级联下拉列表是一种常见的交互设计,用户选择一个选项后,另一个相关的下拉列表会根据前者的选值动态更新。这个过程通常涉及到前端与后端的交互,利用JavaScript库如jQuery和服务器端框架如Spring MVC...

    jquery简单实现级联下拉列表

    在给定的代码片段中,我们看到一个简单的级联下拉列表实现。页面中有两个下拉列表,`#s1` 和 `#s2`。`#s1` 的改变会触发 `change()` 函数,该函数根据 `#s1` 的选中值动态修改 `#s2` 的内容。 #### 代码解析 1. **...

    javascript实现无限级级联下拉列表

    在JavaScript编程中,实现无限级联下拉列表是一项常见的需求,尤其在构建多级导航菜单、组织结构或者层级关系的数据展示时。无限级联下拉列表允许用户逐级选择,每一级的选择会影响到下一级的显示内容。下面我们将...

    input 级联下拉列表

    确保级联下拉列表对辅助技术友好,比如添加适当的`aria-*`属性,使屏幕阅读器用户也能顺利操作。 10. **测试与调试**: 完成级联下拉列表后,进行全面的测试,包括不同浏览器兼容性测试、边缘情况测试以及异常...

    js级联菜单实现全国省市下拉菜单

    下面将详细介绍如何使用JavaScript实现全国省市的二级级联下拉菜单。 首先,我们需要一个HTML结构来承载我们的菜单。在这个例子中,我们有两个`&lt;select&gt;`元素,分别代表省份和城市。省份的选项会触发城市选项的更新...

    网页表单级联下拉列表自动填写方法

    本文将详细介绍网页表单级联下拉列表自动填写方法的实现原理和实践操作。 一、级联下拉列表框的概念 级联下拉列表框是指多个下拉列表框之间存在关联关系的下拉列表框。当用户选择了前一个下拉列表框的选项后,后一...

Global site tag (gtag.js) - Google Analytics