所有代码都是在写在JS中。首先,解析XML 、然后把XML中的内容放进页面中的select选项里。
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>
<province name="东北">
<city>哈尔滨</city>
<city>辽宁</city>
<city>吉林</city>
<city>大连</city>
<city>铁岭</city>
<city>仕新</city>
</province>
</cities>
页面:
<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>
JS:
<script type="text/javascript">
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;
//根据下标获取选中的OPTION
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;
for (var j = 0; j < citys.length; j++) {
//创建一个option
var opt = document.createElement("option");
//为option添加文本
opt.appendChild(document.createTextNode(citys[j].text));
//添加到父节点中
cities.appendChild(opt);
}
}
}
}
}
</script>
效果图:
分享到:
相关推荐
总结来说,实现JavaScript解析XML实现多级级联下拉列表的关键在于理解XML的结构、使用DOMParser解析XML,以及处理级联下拉列表的事件和逻辑。通过这些技术,我们可以创建出高效且易于维护的级联选择功能,提升用户的...
在本文中,我们将深入探讨如何使用JavaScript来解析XML数据,并基于这些数据实现一个两级级联下拉列表。这种功能在Web开发中非常常见,尤其是在构建动态表单时,用户需要根据上一级的选择来筛选下一级的选项。我们将...
在JavaScript和XML结合使用生成级联下拉框的场景中,我们通常会处理多级选择的交互,这种交互常见于地址选择或者分类筛选等。级联下拉框是指当用户在一个下拉框中做出选择后,另一个下拉框的内容会根据用户的选择...
以XML文件作级联数据源,采用树形控件显示,节点可选择Radiobutton,CheckBox,PlainText等类型。
"使用XML文件实现3级下拉框级联"是一种有效的方法,尤其当数据量适中时。这种方法允许我们通过结构化的XML文件来存储和管理级联下拉框的数据,便于读取和更新。 首先,我们需要理解XML(eXtensible Markup Language...
可以使用JavaScript的DOM(Document Object Model)接口来操作HTML元素,根据XML数据动态创建和更新下拉菜单。当用户选择一个省份时,JavaScript会触发事件,发送请求获取对应省份的城市数据,并更新下拉菜单。 在...
3. `script.js` - JavaScript脚本文件,处理事件监听、DOM操作和Ajax请求。 4. `server-side-script.php`或`.js` - 服务器端脚本,处理数据请求和返回。 总结,js和html编写的级联菜单结合了前端和后端的技术,通过...
JavaScript动态级联下拉列表框是一种常见的前端交互设计,它允许用户在选择一个选项后,根据选择的结果动态更新下一个下拉列表框的内容。这种技术在数据筛选、表单填写等场景中广泛应用,能够提高用户体验,减少不必...
本篇文章将详细介绍如何使用JavaScript读取XML文件,并实现城市级联的效果。 首先,我们需要理解XML文件的结构。XML文件通常包含元素、属性和文本节点,这些元素可以嵌套形成树状结构。例如,一个简单的城市级联XML...
总结起来,使用JavaScript和XML实现级联菜单是一种常见的技术组合,它结合了JavaScript的动态性和XML的数据结构优势,提供了用户友好的交互体验。通过学习和实践,开发者可以掌握这一技能,提升网页的交互性和功能性...
2. **JavaScript处理XML**:在前端,使用JavaScript来解析XML文件并动态地生成下拉菜单。DOM(Document Object Model)接口允许我们查找、遍历和修改XML文档。例如,我们可能使用`XMLHttpRequest`对象加载XML文件,...
在网页开发中,"js 级联城市"通常指的是使用JavaScript实现的一种交互效果,它允许用户逐级选择地理位置,例如国家、省份、城市,这种级联选择在很多商业网站中非常常见,如电商网站的收货地址填写、地图应用等。...
在提供的"menu"文件中,可能包含JavaScript代码文件(如`menu.js`)和CSS样式文件(如`menu.css`),它们分别实现了级联菜单的逻辑和样式。通过学习这些文件,你可以更深入地理解如何将JavaScript和CSS结合来创建...
在这个名为“省市县三级级联js+xml”的压缩包中,我们主要会探讨如何使用JavaScript和XML来实现这样的功能。 JavaScript是一种广泛使用的客户端脚本语言,它可以在用户的浏览器上运行,用于增强网页的交互性和动态...
JavaScript(简称JS)是一种广泛用于Web开发的轻量级编程语言,它主要负责网页的动态交互功能。在本项目“JS完整城市三级级联”中,我们关注的是一个实现到县级单位的城市选择器,这样的功能常见于地址输入、物流...
在这个案例中,JQuery通过Ajax(异步JavaScript和XML)技术实现前后端的通信。Ajax允许我们在不刷新整个页面的情况下,动态更新部分页面内容。用户在选择省份或城市时,JQuery监听选择事件,通过Ajax向服务器发送...
JS+XML省市区三级级联控件,可任意选中,调用简单,调用如下: 选中区级 前面默认选中 initCity('province','city','district','dist: '+487); 选中市级 initCity('province2','city2','district2','city: '+295); ...
总之,"用Struts2+Spring+Hibernate三大框架完成的级联操作"是一个典型的Java Web开发实践,它综合运用了MVC架构、依赖注入、ORM以及Ajax等技术,展示了企业级应用的开发流程和设计思想。通过学习和实践这样的项目,...