用js和xml实现城市联动,目前只在ie8中运行过。还有些bug希望指出。
<script type="text/javascript">
window.onload = function ()
{
//得到省的select节点
var provences = document.getElementById("prvence");
provences.onchange = function ()
{
var provenceName = this.value;
var city = document.getElementById("city"); //删除city中的原有数据
var citys = city.getElementsByTagName("option"); //在省的下拉框出现onchange的时候先清空city的下拉框的内容
var lens = citys.length;
for(var k=lens-1;k>=0;k--)
{
city.removeChild(citys[k]);
}
var xmlDoc = loadXML("cities.xml"); //加载xml文档,并获得xml文档对象
var provence = xmlDoc.getElementsByTagName("provence");
var len = provence.length; //省的节点一共有多少个
var cities = new Array();
for(var i=0;i<len;i++)//xml中省的节点
{
var provenceElements = provence[i];
pro = provenceElements.getAttribute("name");
if(provenceName==pro)
{
cities = provenceElements.getElementsByTagName("city");
}
}
var optionies = new Array();
for(var j=0;j<cities.length;j++)
{
optionies = document.createElement("option");
optionies.innerText= cities[j].text;
city.appendChild(optionies);
}
}
}
//加载xml文档
var xmlDoc;
function loadXML(fname) {
var xmlDoc;
try
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
} catch (e)
{
try {
xmlDoc = document.implementation.createDocument("", "", null);
}
catch (e)
{
alert(e.message);
}
}
try
{
xmlDoc.async = false;
xmlDoc.load(fname);
}
catch (e) {
}
return xmlDoc;
}
</script>
下面是整个代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js实现联动</title>
<!--当用户选择一个省时第二个下拉框出现相应省的市-->
<script type="text/javascript">
window.onload = function ()
{
//得到省的select节点
var provences = document.getElementById("prvence");
provences.onchange = function ()
{
var provenceName = this.value;
var city = document.getElementById("city"); //删除city中的原有数据
var citys = city.getElementsByTagName("option"); //在省的下拉框出现onchange的时候先清空city的下拉框的内容
var lens = citys.length;
for(var k=lens-1;k>=0;k--)
{
city.removeChild(citys[k]);
}
var xmlDoc = loadXML("cities.xml"); //加载xml文档,并获得xml文档对象
var provence = xmlDoc.getElementsByTagName("provence");
var len = provence.length; //省的节点一共有多少个
var cities = new Array();
for(var i=0;i<len;i++)//xml中省的节点
{
var provenceElements = provence[i];
pro = provenceElements.getAttribute("name");
if(provenceName==pro)
{
cities = provenceElements.getElementsByTagName("city");
}
}
var optionies = new Array();
for(var j=0;j<cities.length;j++)
{
optionies = document.createElement("option");
optionies.innerText= cities[j].text;
city.appendChild(optionies);
}
}
}
//加载xml文档
var xmlDoc;
function loadXML(fname) {
var xmlDoc;
try
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
} catch (e)
{
try {
xmlDoc = document.implementation.createDocument("", "", null);
}
catch (e)
{
alert(e.message);
}
}
try
{
xmlDoc.async = false;
xmlDoc.load(fname);
}
catch (e) {
}
return xmlDoc;
}
</script>
</head>
<body>
<select id="prvence">
<option>----请选择----</option>
<option value="北京市">北京市</option>
<option value="湖南省">湖南省</option>
<option value="黑龙江">黑龙江</option>
<option value="广东省">广东省</option>
</select>
<select id="city">
<option>----请选择----</option>
</select>
</body>
</html>
还有一个xml文档
<?xml version="1.0" encoding="utf-8"?>
<china>
<provence name="湖南省">
<city>长沙</city>
<city>常德</city>
<city>沈阳</city>
<city>邵阳</city>
</provence>
<provence name="北京市">
<city>昌平</city>
<city>海淀</city>
<city>朝阳</city>
<city>西城</city>
</provence>
<provence name="黑龙江">
<city>漯河</city>
<city>黑河</city>
</provence>
<provence name="广东省">
<city>广州</city>
<city>东莞</city>
</provence>
</china>
分享到:
相关推荐
总结一下,这个示例展示了如何使用JavaScript和XML进行数据交互,实现动态省市区联动的效果。通过JavaScript处理XML数据,我们可以创建响应式的网页,提高用户体验,同时XML作为一种标准的数据交换格式,保证了数据...
在网页开发中,"JS解析XML实现省市县三级联动"是一种常见的交互功能,主要用于地理信息的选择,例如用户在填写地址时选择省份、城市和区县。这个功能通过JavaScript(JS)解析XML数据来动态更新下拉菜单,实现联动...
通过这种方式,开发者可以快速理解并学习如何用JavaScript解析XML,以及如何实现联动效果。这个实例对于提升JavaScript编程能力和实际项目经验都非常有帮助。 总之,"js解析xml实现二级,三级联动简单成功实例"是一...
在"xml城市下拉框联动"这个场景中,我们主要探讨如何利用XML来实现前端交互中的城市选择下拉框的联动效果。 首先,我们需要理解下拉框联动的基本概念。联动下拉框是指两个或多个下拉框之间存在关联关系,当用户在一...
在IT行业中,"js+xml四级联动"是一种常见的前端交互技术,主要用于实现多级下拉菜单或者选择器的联动效果。这种技术通常应用于如地区选择、类别筛选等场景,用户在选择某一选项时,后续的下拉框会根据前一个选项的...
在“js二级和js_xml三级联动”中,JavaScript的主要作用是读取XML数据,解析出省份、城市和县的信息,并在用户选择某个级别时,动态更新下一级别的选项。通过事件监听和DOM操作,js可以实现实时响应用户的操作,展示...
要实现Ajax获取XML数据,我们需要使用JavaScript的XMLHttpRequest对象或者更现代的fetch API。XMLHttpRequest是Ajax的核心,它允许我们在后台与服务器进行异步通信。以下是一个简单的Ajax请求XML数据的例子: ```...
总结来说,实现JavaScript解析XML以创建多级级联下拉列表涉及的主要知识点包括:JavaScript基础、XML文件结构与解析、DOM操作、事件监听以及动态生成HTML元素。通过这些技术,可以构建出交互性强、用户体验良好的Web...
通过上述讲解,我们可以了解到"js+xml三级联动省市区"在网页开发中的重要性和实现细节。这个功能的实现结合了JavaScript的动态性与XML的数据结构,为用户提供了一种高效、便捷的地理信息选择方式。
在JavaScript中,实现省市县三级联动的基本思路是利用XML数据来存储各个级别的行政区域信息,然后通过事件监听和DOM操作动态更新下拉列表的选择项。在这个成功实例中,主要涉及了以下几个关键知识点: 1. **XML数据...
总之,“javascript+xml省市区热点四级联动”是一个结合了JavaScript动态处理、XML数据交换和用户交互设计的技术实践,对于前端开发者来说,理解和掌握这种技术对于提升Web应用的用户体验至关重要。
在网页开发中,"三级联动"是...总的来说,"js实现三级联动展现"是一个综合运用JavaScript动态操作DOM、XML数据解析以及AJAX异步通信的实际案例。这种技术在现代网页开发中广泛应用,对于提升用户交互体验有着重要作用。
这种技术主要依赖于Ajax(异步JavaScript和XML)和XML数据格式来实现。以下是关于这个主题的详细解释: 1. **Ajax(异步JavaScript和XML)**: Ajax是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。...
这个"jquery+xml城市三级联动"项目是利用jQuery库和XML数据来实现这一功能的示例。jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互。而XML(Extensible Markup Language)则是...
本主题“基于xml数据的省市区三级联动”关注的是如何利用JavaScript和XML数据来实现这一功能。 XML(Extensible Markup Language)是一种用于存储和传输数据的格式,它结构清晰,易于解析,并且与平台和语言无关。...
本示例主要介绍如何使用Ajax和XML来实现这种联动效果。 Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。在本案例中,Ajax用于动态加载和解析XML...
本主题将深入探讨如何使用jQuery解析XML数据,并利用这些数据实现省市二级联动的效果。这种功能常见于地理选择,用户在选择省份后,下拉菜单会自动更新展示对应省份的城市选项。 首先,我们需要理解XML(Extensible...
通过以上步骤,我们成功地使用jQuery和XML实现了省市县联动的功能。这种方式既灵活又易于维护,适用于各种规模的项目。在实际应用中,可以根据需求进行调整,比如增加搜索功能,支持多级联动等。同时,随着前端技术...
综上所述,"js+xml三级联动"是一个利用JavaScript和XML技术实现的动态交互功能,它提升了用户在网页中的导航体验。通过合理的数据结构、事件处理和异步加载,我们可以构建出高效且用户体验优良的三级联动下拉菜单。