js省市级联

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>省市级联</title>
    <script type="text/javascript">
        window.onload = function () {
            var datas = { "山东": ["青岛", "济南", "烟台"], "山西": ["大同", "太原", "运城"], "湖北": ["武汉", "咸宁", "宜昌"] };

            var s1obj = document.getElementById('s1');
            //动态创建数据,加载到省中.

            //假定
            var defaultProvice = '山西';

            //1加载省份
            for (var shen in datas) {
                //1.1创建一个select下的option.
                var optshen = document.createElement('option');
                optshen.innerHTML = shen;
                optshen.value = shen;
                //1.2设置默认.
                if (shen == defaultProvice) {
                    optshen.selected = true;
                }
                s1obj.appendChild(optshen);
            }

            //2.设置默认的省下的城市.
            //2.1获取默认的省份下的城市.
            var citys = datas[defaultProvice];
            //2.2.获取s2
            var s2obj = document.getElementById('s2');
            for (var i = 0; i < citys.length; i++) {
                //2.3 创建一个option
                var optcity = document.createElement('option');
                optcity.innerHTML = citys[i];
                optcity.value = citys[i];
                s2obj.appendChild(optcity);
            }

            //3为省份的select元素注册一个onchange事件.
            s1obj.onchange = function () {

                //4.清空城市选中列表
                while (s2obj.firstChild) {
                    s2obj.removeChild(s2obj.firstChild);
                }

                //4方法二
               // s2obj.innerHTML = '';

                //1.获取当前选中项的名称.
                var provinceName = this.value;
                var currentCitys = datas[provinceName];
                //创建option
                for (var i = 0; i < currentCitys.length; i++) {
                    //3.1
                    var optionCity = document.createElement('option');
                    optionCity.value = currentCitys[i];
                    optionCity.innerHTML = currentCitys[i];
                    s2obj.appendChild(optionCity);
                }
            }
        }
    </script>
</head>
<body>
    省<select id="s1"></select>
    市<select id="s2"></select>
</body>
</html>

posted @ 2013-07-21 03:23  nqsan  阅读(353)  评论(0编辑  收藏  举报