• 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>

  • 相关阅读:
    关于在php+apache开发过程中使用svn进行版本的维护
    Fragment的切换动画实现
    IOS MJExtension json转模型的轻量级框架的使用
    Centos 配置Red5流媒体服务器
    在Centos 6.5 上面配置 SVN
    在Centos 上面配置Openfire
    关于阿里云上面的Centos上面配置 防火墙
    【Android 一些难以理解的控件、容易混淆的、多种实现方式的、一些该纠正的想法】
    【进攻移动开发_htm5_跨平台_的号角】
    【进攻Android的号角】
  • 原文地址:https://www.cnblogs.com/CharlesZHENG/p/4125048.html
Copyright © 2020-2023  润新知