`
文博Z.BOY
  • 浏览: 12775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

根据XML用JS做级联操作

阅读更多

所有代码都是在写在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>
 

 

效果图:

 

3
3
分享到:
评论

相关推荐

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

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

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

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

    js+xml生成级联下拉框代码.docx

    在JavaScript和XML结合使用生成级联下拉框的场景中,我们通常会处理多级选择的交互,这种交互常见于地址选择或者分类筛选等。级联下拉框是指当用户在一个下拉框中做出选择后,另一个下拉框的内容会根据用户的选择...

    以XML为级联数据源的JavaScript树型选择器

    以XML文件作级联数据源,采用树形控件显示,节点可选择Radiobutton,CheckBox,PlainText等类型。

    使用XML文件实现3级下拉框级联

    "使用XML文件实现3级下拉框级联"是一种有效的方法,尤其当数据量适中时。这种方法允许我们通过结构化的XML文件来存储和管理级联下拉框的数据,便于读取和更新。 首先,我们需要理解XML(eXtensible Markup Language...

    java js 城市级联菜单xml和sql版

    可以使用JavaScript的DOM(Document Object Model)接口来操作HTML元素,根据XML数据动态创建和更新下拉菜单。当用户选择一个省份时,JavaScript会触发事件,发送请求获取对应省份的城市数据,并更新下拉菜单。 在...

    js加html编写的级联菜单

    3. `script.js` - JavaScript脚本文件,处理事件监听、DOM操作和Ajax请求。 4. `server-side-script.php`或`.js` - 服务器端脚本,处理数据请求和返回。 总结,js和html编写的级联菜单结合了前端和后端的技术,通过...

    JavaScript动态级联下拉列表框

    JavaScript动态级联下拉列表框是一种常见的前端交互设计,它允许用户在选择一个选项后,根据选择的结果动态更新下一个下拉列表框的内容。这种技术在数据筛选、表单填写等场景中广泛应用,能够提高用户体验,减少不必...

    js 读取 xml 的城市级联

    本篇文章将详细介绍如何使用JavaScript读取XML文件,并实现城市级联的效果。 首先,我们需要理解XML文件的结构。XML文件通常包含元素、属性和文本节点,这些元素可以嵌套形成树状结构。例如,一个简单的城市级联XML...

    级联菜单=javascript+xml

    总结起来,使用JavaScript和XML实现级联菜单是一种常见的技术组合,它结合了JavaScript的动态性和XML的数据结构优势,提供了用户友好的交互体验。通过学习和实践,开发者可以掌握这一技能,提升网页的交互性和功能性...

    XML省市级联

    2. **JavaScript处理XML**:在前端,使用JavaScript来解析XML文件并动态地生成下拉菜单。DOM(Document Object Model)接口允许我们查找、遍历和修改XML文档。例如,我们可能使用`XMLHttpRequest`对象加载XML文件,...

    js 级联城市

    在网页开发中,"js 级联城市"通常指的是使用JavaScript实现的一种交互效果,它允许用户逐级选择地理位置,例如国家、省份、城市,这种级联选择在很多商业网站中非常常见,如电商网站的收货地址填写、地图应用等。...

    级联菜单js+css

    在提供的"menu"文件中,可能包含JavaScript代码文件(如`menu.js`)和CSS样式文件(如`menu.css`),它们分别实现了级联菜单的逻辑和样式。通过学习这些文件,你可以更深入地理解如何将JavaScript和CSS结合来创建...

    省市县三级级联js+xml

    在这个名为“省市县三级级联js+xml”的压缩包中,我们主要会探讨如何使用JavaScript和XML来实现这样的功能。 JavaScript是一种广泛使用的客户端脚本语言,它可以在用户的浏览器上运行,用于增强网页的交互性和动态...

    JS完整城市三级级联

    JavaScript(简称JS)是一种广泛用于Web开发的轻量级编程语言,它主要负责网页的动态交互功能。在本项目“JS完整城市三级级联”中,我们关注的是一个实现到县级单位的城市选择器,这样的功能常见于地址输入、物流...

    SSH+JQuery+MySQL级联操作(省市县级联)

    在这个案例中,JQuery通过Ajax(异步JavaScript和XML)技术实现前后端的通信。Ajax允许我们在不刷新整个页面的情况下,动态更新部分页面内容。用户在选择省份或城市时,JQuery监听选择事件,通过Ajax向服务器发送...

    JS+XML省市区三级级联控件,可随意默认选中

    JS+XML省市区三级级联控件,可任意选中,调用简单,调用如下: 选中区级 前面默认选中 initCity('province','city','district','dist: '+487); 选中市级 initCity('province2','city2','district2','city: '+295); ...

    用Struts2+Spring+Hibernate三大框架完成的级联操作

    总之,"用Struts2+Spring+Hibernate三大框架完成的级联操作"是一个典型的Java Web开发实践,它综合运用了MVC架构、依赖注入、ORM以及Ajax等技术,展示了企业级应用的开发流程和设计思想。通过学习和实践这样的项目,...

Global site tag (gtag.js) - Google Analytics