• 20131222-Dom省市加载-第二十七天


    [1]省市选择

    <head>

    <title></title>

    <script type="text/javascript">

    window.onload = function () {

    //1.动态加载省份

    var datas = {

    "山东": ["青岛", "济南", "烟台"],

    "山西": ["大同", "太原", "运城"],

    "陕西": ["西安", "咸阳", "汉中"]

    };

     

    var defaultProvince = '山西';

     

    loadProvince(datas, defaultProvince);

     

     

    //2.根据默认选中的省份,动态加载城市信息

    loadCity(datas, defaultProvince);

     

    //2.为省份的select注册一个选择项改变事件,当选择项改变后动态改变"城市列表"

     

    document.getElementById('s1').onchange = function () {

    //1.获取当前选中项

    //this.value指的就是,当前select中被选中的那个optionvalue值。

    //alert(this.value);

    //获取当前用户选中的省份

    var currentProvince = this.value;

     

     

    //根据省份信息加载城市

    loadCity(datas, currentProvince);

    };

    };

     

     

    //加载城市的方法

    function loadCity(dict, dp) {

     

    var s2Obj = document.getElementById('s2');

     

    //重新加载之前清空一下s2

    while (s2Obj.firstChild) {

    s2Obj.removeChild(s2Obj.firstChild);

    }

     

     

    //根据默认选中省份,查找对应的城市信息

    var city = dict[dp];

    //将找到的城市数据加载到s2

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

    var opt = document.createElement('option');

    opt.innerHTML = city[i];

    opt.value = city[i];

    s2Obj.appendChild(opt);

    }

    }

     

    //加载省份的方法

    function loadProvince(dict, dp) {

     

    var s1Object = document.getElementById('s1');

    //遍历dict数据

    for (var key in dict) {

    //每遍历一条数据,则向selelct增加一个option

    var opt = document.createElement('option');

    opt.innerHTML = key;

    opt.value = key;

    //如果当前遍历的省份与"默认要选中的省份"相同

    if (key == dp) {

    //设置默认被选中的option

    opt.selected = true;

    }

     

    //var opt = new Option(key,key);

    s1Object.appendChild(opt);

    }

    }

    </script>

    </head>

    <body>

    省:

    <select id="s1">

    </select>

    市:

    <select id="s2">

    </select>

    </body>

  • 相关阅读:
    C++中重载,重写,隐藏的区别
    以太网(局域网)交换机工作原理
    IP地址、MAC地址、ARP地址解析协议
    Metasploitable渗透测试实战——Windows漏洞 MS08-067复现
    一次对真实网站的SQL注入———SQLmap使用
    多字节与宽字节转换
    char*、string、CString各种字符串之间转换
    国密SM4分组加密算法实现 (C++)
    网络编程——基于UDP的网络化CPU性能检测
    U盘小偷——C++实现U盘插入检测和文件扫描拷贝
  • 原文地址:https://www.cnblogs.com/CharlesZHENG/p/4125048.html
Copyright © 2020-2023  润新知