惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
WordPress大学
WordPress大学
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
MyScale Blog
MyScale Blog
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
P
Proofpoint News Feed
D
DataBreaches.Net

博客园 - 亦心

教你如何查找并下载某手某音上的外部视频 求出两个字符串中最大长度的相同的子字符串 年会抽奖软件 正则表达式+编码转换小工具 sql语句跨库导入导出 Google maps API开发(二) - 亦心 Google maps API开发(一) - 亦心 Javascript树型菜单(含源码) ASP.NET程序读取二代身份证(附源码) - 亦心 - 博客园 仿百度搜索智能提示(纯JS实现) 发现一个免费申请国际域名的地方!! asp.net性能优化 分享一个分页存储过程和分页函数 利用反射实现通用的DataReader转List、DataReader转实体类 任意类型转换成json tsql字符串操作 javascript正则表达式 - 亦心 - 博客园 access、excel取随机n条记录 测试SQL Server执行时间和CPU时间
Javascript结合XML省市级联 - 亦心 - 博客园
亦心 · 2010-03-09 · via 博客园 - 亦心
 

Javascript结合XML省市级联

Javascript

var xmlDoc;

var province = new Array();//省份

var city = new Array();//

var county = new Array();//

//初始化省、市、区、县

function Init() {

    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

    xmlDoc.async = false;

    xmlDoc.load("Area.xml");

    if (xmlDoc.parseError.errorCode != 0) {

        alert("出错!" + xmlDoc.parseError.reason);

    }

    var bb = xmlDoc.selectSingleNode("address").childNodes;

    var dd = xmlDoc.selectSingleNode('//address/province[@name="北京市"]');

    var ff = xmlDoc.selectSingleNode('//address/province/city[@name="北京辖区"]');

    for (var j = 0, l1 = dd.childNodes.length; j < l1; j++) {

        var ee = dd.childNodes[j].getAttribute("name")

        city.push(ee);

    }

    for (var k = 0, l2 = ff.childNodes.length; k < l2; k++) {

        var gg = ff.childNodes[k].getAttribute("name")

        county.push(gg);

    }

    if (bb.length > 0) {

        for (var i = 0; i < bb.length; i++) {

            var aa = bb[i].getAttribute("name");

            province.push(aa);

        }

    }

    InitSelect("Select1", province);

    InitSelect("Select2", city);

    InitSelect("Select3", county);

}

//通过省名查询城市、区、县

function selectProvince(name) {

    var dd = xmlDoc.selectSingleNode('//address/province [@name="' + name + '"]');

    if (dd != null) {

        if (dd.childNodes.length > 0) {

            city = new Array();

            county = new Array();

            if (dd.childNodes.length > 0) {

                for (var i = 0; i < dd.childNodes.length; i++) {

                    var ee = dd.childNodes[i].getAttribute("name");

                    city.push(ee);

                }

                InitSelect("Select2", city);

            }

            if (dd.childNodes[0].childNodes.length > 0) {

                for (var i = 0; i < dd.childNodes[0].childNodes.length; i++) {

                    var ff = dd.childNodes[0].childNodes[i].getAttribute("name");

                    county.push(ff);

                }

                InitSelect("Select3", county);

            }

        }

    }

}

//得到所有的区或县

function selectCity(name) {

    var ff = xmlDoc.selectSingleNode('//address/province/city[@name="' + name + '"]');

    if (ff != null) {

        if (ff.childNodes.length > 0) {

            county = new Array();

            for (var i = 0; i < ff.childNodes.length; i++) {

                var gg = ff.childNodes[i].getAttribute("name");

                county.push(gg);

            }

        }

        InitSelect("Select3", county);

    }

}

function InitSelect(id, arrys) {

    var item;

    var obj = document.getElementById(id);

    obj.length = 0;

    for (var m = 0; m < arrys.length; m++) {

        item = document.createElement("option");

        item.text = arrys[m];

        item.value = arrys[m];

        obj.options.add(item);

    }

}

//得到所有的省份

function GetProvinces() {

    var provinces = new Array();

    var bb = xmlDoc.selectSingleNode("address").childNodes;

    if (bb.length > 0) {

        for (var i = 0; i < bb.length; i++) {

            var aa = bb[i].getAttribute("name");

            provinces.push(aa);

        }

    }

    return provinces;

}

//得到所有城市

function GetCitys(p) {

    var citys = new Array();

    var dd = xmlDoc.selectSingleNode('//address/province [@name="' + p + '"]');

    if (dd != null) {

        if (dd.childNodes.length > 0) {

            for (var i = 0; i < dd.childNodes.length; i++) {

                var gg = dd.childNodes[i].getAttribute("name");

                citys.push(gg);

            }

        }

    }

    return citys;

}

HTML

    <select id="Select1" name="D1" onchange="selectProvince(this[this.selectedIndex].value)">

        <option></option>

    </select><select id="Select2" name="D2" onchange="selectCity(this[this.selectedIndex].value)">

        <option></option>

    </select><select id="Select3" name="D3">

        <option></option>

</select>

调用:

window.onload = function() {

Init();

}

点我下载XML数据源

每天进步一点点...