前台页面json的二级联动

var china = {

"provinces":[{

"name" : "吉林省",

city:["长春","吉林市","四平","松原","通化"]

},{

"name" : "辽宁省",

city:["沈阳","大连","鞍山","抚顺","铁岭"]

},{

"name" : "山东省",

city:["济南","青岛","威海","烟台","潍坊"]

},{

"name" : "上海市",

city:["闵行区","徐汇区"]

},{

"name" : "安徽省",

city:["合肥市","六安市"]

}]

};

 

<script type="text/javascript">

//动态事件注册,一定要先把这个整个文档加载完成的onload事件先注册 上

window.onload = function() {

// 通过id属性值,查找到省的下拉列表对象

var provinceSelect = document.getElementById("province");

// 遍历访问每一个省的数据,创建option标签对象

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

// 通过document.createElement 方法 创建option标签对象

var optionObj = document.createElement("option");

// 通过innerHTML属性。设置option标签对象的文本内容

optionObj.innerHTML = china.provinces[i].name;

// 把创建好的option添加到省的下拉列表中

provinceSelect.appendChild(optionObj);

}

// 给省份的下拉列表添加选中的改变事件

provinceSelect.onchange = function(){

//alert(provinceSelect.selectedIndex);

 // 通过id属性值,打开到这个城市 的下拉列表对象

var citySelect = document.getElementById("city");

// alert(citySelect.options.length);

// 在添加新的城市数据之前,要把原来的城市 数据清掉

for (var j = 1; j < citySelect.options.length; j++) {

citySelect.removeChild(citySelect.options[j]);

j--;

}  

 

// 通过省下的下拉列表的选中的索引,获取到城市数据的选中的省的城市的长度

var len = china.provinces[provinceSelect.selectedIndex-1].city.length;

// 遍历城市 的数据,创建城市 的option标签对象

for (var i = 0; i < len; i++) {

// 通过document.createElement 方法 创建option标签对象

var optionObj = document.createElement("option");

// 通过innerHTML属性。设置option标签对象的文本内容

optionObj.innerHTML = china.provinces[provinceSelect.selectedIndex-1].city[i];

// 把创建好的option添加到省的下拉列表中

citySelect.appendChild(optionObj);

}

}

}

</script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下步骤实现: 1. 创建两个 json 文件,一个包含省份信息,一个包含城市信息,例如:province.json 和 city.json。 province.json 文件内容如下: ```json [ { "id": "110000", "name": "北京市" }, { "id": "120000", "name": "天津市" }, { "id": "130000", "name": "河北省" }, ... ] ``` city.json 文件内容如下: ```json [ { "id": "110100", "name": "北京市", "province_id": "110000" }, { "id": "120100", "name": "天津市", "province_id": "120000" }, { "id": "130100", "name": "石家庄市", "province_id": "130000" }, ... ] ``` 2. 在 HTML 文件中创建两个 select 元素,一个用于选择省份,一个用于选择城市,并给它们分别设置 id。 ```html <select id="province"></select> <select id="city"></select> ``` 3. 使用 Ajax 异步加载省份信息,将省份信息添加到省份 select 中。 ```javascript $.getJSON('province.json', function(data) { var options = '<option value="">请选择省份</option>'; $.each(data, function(index, item) { options += '<option value="' + item.id + '">' + item.name + '</option>'; }); $('#province').html(options); }); ``` 4. 监听省份 select 的 change 事件,根据省份选项的值,异步加载对应城市信息,将城市信息添加到城市 select 中。 ```javascript $('#province').change(function() { var provinceId = $(this).val(); if (provinceId) { $.getJSON('city.json', {province_id: provinceId}, function(data) { var options = '<option value="">请选择城市</option>'; $.each(data, function(index, item) { options += '<option value="' + item.id + '">' + item.name + '</option>'; }); $('#city').html(options); }); } else { $('#city').html('<option value="">请选择城市</option>'); } }); ``` 5. 在 city.json 中添加一个 province_id 字段,表示该城市所属的省份 id,使用 Ajax 异步加载城市信息时,可以通过传递省份 id 参数来过滤出对应的城市信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值