前段时间做一个项目,需要动态的从后台数据里面里面提取相应国家、省份及城市的信息,实现的过程就是通过下拉菜单先选择一个国家,然后在另一个下拉框里面是这个国家的省份,再通过选择的省份填充另外一个城市的下拉框,其实通过级联查询的方式完全可以实现,或者一次性通过数组读取国家省份及城市的信息,然后填充这几个下拉框,觉得这样也不方便,想来想去何不用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 省份城市级联选择"就是这样一个解决方案,它利用JavaScript实现了一个高效的、无刷新的省份城市选择功能。这个功能对于提升用户体验至关重要,因为它减少了页面加载次数,提高了交互速度。 首先,我们来看...
以上就是关于"web页面实现省份和城市的级联"的基本原理和实现方法。通过这个过程,我们可以学习到HTML表单元素的使用、JavaScript事件处理和DOM操作,以及如何结合静态数据动态生成界面。这在Web开发中是非常基础且...
标题中的“国家省份城市级联菜单”指的是在用户界面设计中常见的一种交互元素,它用于让用户选择国家、省份(或州)以及城市,通常在填写地址或者设置地理位置时使用。这种菜单一般会以级联的方式呈现,即选择一个...
在IT领域,尤其是在Web开发中,"省份与城市级联"是一种常见的交互设计,它用于构建下拉菜单,用户在选择省份后,城市下拉菜单会动态更新展示对应省份的城市。这种功能通常由JavaScript实现,因为JavaScript是浏览器...
JavaScript 城市级联是一种常见的前端交互功能,用于在两个或多个下拉列表之间实现联动效果,通常是省份和城市,用户选择一个省份后,城市下拉列表会动态更新为对应省份的城市。这种功能广泛应用于地址填写、物流...
JavaScript城市级联选择是一种常见的前端交互功能,常用于在线表单中,用户在选择省份后,下拉框会自动更新为对应省份的城市选项,以此类推到区县或街道。这种功能大大提升了用户体验,减少了手动输入的繁琐。下面将...
在Web开发中,城市级联选择框是一种常见的交互元素,它能够帮助用户方便地从国家、省份、城市等层级中进行选择。jQuery作为一款广泛使用的JavaScript库,提供了丰富的功能来简化这类复杂交互的实现。本文将深入探讨...
"jQuery实现级联地区选择"这个主题就是关于如何利用jQuery库来创建一个动态联动的省份-城市选择器。这个实例包含了JSP(JavaServer Pages)、JavaScript和CSS三个主要部分,旨在提供一种高效、用户友好的选择体验。 ...
在JavaScript(简称js)开发中,经常会遇到需要创建级联选择的效果,比如全国省份、城市、高校的选择。这种级联菜单能够帮助用户...通过学习和理解这些文件,可以更好地掌握js实现全国省份城市高校级联的具体实现方法。
至于文件列表中的"4种全面省份城市级联例子.rar",这很可能是一个包含示例代码和数据的压缩包,提供了四种不同实现方法的完整示例。下载并解压后,开发者可以参考这些代码来学习和理解城市级联的实现过程。而"3C3N...
这通常通过DOM操作来实现,如`innerHTML`属性的设置或者`appendChild`方法的调用。 5. **优化用户体验**:为了提高用户体验,可以添加搜索功能,让用户能快速找到所需城市。此外,还可以加入缓存策略,避免每次选择...
5. **数据库设计**: 数据库设计是实现城市级联的关键,一般会有一个包含国家信息的表和一个包含城市信息的表,城市表会有一个外键关联到国家表。这样,通过查询可以轻松地获取到某个国家的所有城市。 6. **后端接口...
在IT行业中,尤其是在前端开发领域,我们经常遇到需要实现省份城市区域选择的功能,这通常涉及到用户界面中的级联下拉菜单。"省份城市区域div级联 超好工具js jQuery"是一个这样的解决方案,它利用JavaScript(特别...
总结,实现“脚本实现下拉框省份级联”涉及到JavaScript的基础知识,包括事件处理、DOM操作、数据获取与处理、以及用户体验优化等多个方面。通过这个实例,开发者可以深入理解和实践这些技能,提升前端开发能力。
这个"Ajax实现省份&城市级联"的主题涉及到Web开发中的动态交互设计,特别是前端部分,它允许用户在选择省份后,城市列表能够即时更新,提供无缝的用户体验。 在传统的网页交互中,如果要实现省份和城市的级联效果,...
数据结构可能包含国家、省份、城市等层次,以便于动态构建级联列表。 2. 动态加载:为了提高页面加载速度,城市数据可能按需加载。当用户选择上级区域(如省份)时,插件会异步加载对应的城市数据,这通常借助Ajax...
这种效果可以用来展示层级关系的数据,比如国家、省份、城市这样的地理信息。在这个案例中,我们将深入探讨如何使用JavaScript来实现这一功能。 首先,我们需要理解JavaScript的基础知识。JavaScript是一种脚本语言...