JS的二级联动

15.1:数据准备

var china = [
     // {} 代表一个对象。 对象里面的 key:value,key:value  其中的key 就是对象的属性的名字,属性的值。
    {
        "p_name": "吉林省",
        "p_id": "jl",
        "cities": [
            {
                "c_name": "长春",
                "c_id": "cc"
            },
            {
                "c_name": "四平",
                "c_id": "sp"
            },
            {
                "c_name": "通化",
                "c_id": "th"
            },
            {
                "c_name": "松原",
                "c_id": "sy"
            }
        ]
    },
    {
        "p_name": "辽宁省",
        "p_id": "ln",
        "cities": [
            {
                "c_name": "沈阳",
                "c_id": "sy"
            },
            {
                "c_name": "大连",
                "c_id": "dl"
            },
            {
                "c_name": "抚顺",
                "c_id": "fs"
            },
            {
                "c_name": "铁岭",
                "c_id": "tl"
            },
            {
                "c_name": "丹东",
                "c_id": "tl"
            }
        ]
        
    },
    {
        "p_name": "山东省",
        "p_id": "sd",
        "cities": [
            {
                "c_name": "济南",
                "c_id": "jn"
            },
            {
                "c_name": "青岛",
                "c_id": "qd"
            },
            {
                "c_name": "威海",
                "c_id": "wh"
            },
            {
                "c_name": "烟台",
                "c_id": "yt"
            }
        ]
        
    },
    {
        "p_name": "上海市",
        "p_id": "sh",
        "cities": [
            {
                "c_name": "闵行区",
                "c_id": "mh"
            },
            {
                "c_name": "徐汇区",
                "c_id": "xh"
            },
            {
                "c_name": "黄浦区",
                "c_id": "hp"
            },
            {
                "c_name": "浦东新区",
                "c_id": "pd"
            }
        ]
        
    }
];

获取json里面的数据:

<script type="text/javascript" src="sky1.js" charset="UTF-8"></script>
		<script type="text/javascript">
			for (var i =0;i<china.length;i++) {
				alert(china[i].p_name);//拿到每一个省
				for (var j=0;j<china[i].cities.length;j++){
					alert(china[i].cities[j].c_name)//拿到每一个市
				}
			}

1.2页面准备:

<body>
		<select id="province" name="prcvince" οnchange="demo();">
			<option value="none">--请选择省份--</option>
		</select>
		<select id="city" name="city">
			<option value="none">--请选择城市--</option>
		</select>
	</body>

1.3. 页面初始化的时候,在省的select 标签添加内容

            window.οnlοad=function(){
			//按照china里面省份的信息,创建多个option标签并添加到p_select中
			//按照id=province 这个select标签
			var p_select =document.getElementById("province");
			//遍历china----china[i]代表一个省份
			for (var i=0;i<china.length;i++) {
			//china[i].p_name
			//创建option标签
			var _option = document.createElement("option");
			_option.innerHTML=china[i].p_name;
			//setAttribute(属性名,属性值)
			_option.setAttribute("value",china[i].p_id);
			//把option放到p_select中
			p_select.appendChild(_option);
			}
		}

1.4. 选择省的时候,市的信息对应变化

     function demo(){
		//删除子标签
		removeCity();
		//获取id=city的select标签
		var c_select = document.getElementById("city");
		//select 标签select。value表示的是:当前选择的option选项的value值
		//1.获取select 标签 id="province"
		var p_select = document.getElementById("province");
		var p_id = p_select.value;
		//2.遍历china
		for (var i =0;i<china.length;i++) {
			//2.1判断p_id是不是选择的省份:
			if (china[i].p_id==p_id) {
			//2.2找到省份对应的城市信息
				var cities = china[i].cities;
				//2.3对城市数组遍历
				for (var j=0;j<cities.length;j++) {
				//cities[j].c_name   城市的名字
				//创建option标签
				var _option = document.createElement("option");
				_option.innerHTML=cities[j].c_name;
				_option.setAttribute("value",cities[j].c_id);
				c_select.appendChild(_option);							
			}						
		}
	}
	}

1.5. 删除城市下面的select中

           function removeCity(){
				var c_select = document.getElementById("city");
				c_select.innerHTML="<option value='none'>--请选择城市--</option>";
			}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值