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

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Check Point Blog
Hacker News: Ask HN
Hacker News: Ask HN
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
N
Netflix TechBlog - Medium
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 叶小钗
Cisco Talos Blog
Cisco Talos Blog
S
Schneier on Security
T
Threat Research - Cisco Blogs
腾讯CDC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Hacker News
The Hacker News
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
GbyAI
GbyAI
N
News | PayPal Newsroom
L
LINUX DO - 最新话题
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Palo Alto Networks Blog
T
Tenable Blog
S
Secure Thoughts
T
Threatpost
V2EX - 技术
V2EX - 技术
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
罗磊的独立博客
P
Privacy & Cybersecurity Law Blog
Engineering at Meta
Engineering at Meta
小众软件
小众软件
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
Y
Y Combinator Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
P
Privacy International News Feed
H
Heimdal Security Blog
量子位
B
Blog

博客园 - 亦心

教你如何查找并下载某手某音上的外部视频 求出两个字符串中最大长度的相同的子字符串 年会抽奖软件 正则表达式+编码转换小工具 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数据源

每天进步一点点...