三级城市联动

Original 2019-01-22 12:30:23 216
abstract:<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Title</title&g
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
省:<select name=''id="pro"></select>
市:<select name="" id="city"></select>
区:<select name="" id="area"></select>
<p></p>
</body>
<script src="js/jquery-1.11.1.min.js"></script>
<script>
    $(function () {
        $.getJSON('省.json',function (data) {
            // console.log(data);
 var option = '<option>选择(省)</option>';
            $.each(data,function (i) {
                // console.log(data[i]);
 option = option+'<option value="'+data[i].proId+'">'+data[i].proName+'</option>';
           })
            // console.log(option);
 $(option).appendTo("#pro");
        })

        $('#pro').change(function () {
            var s = $(this).find(':selected').text();
            $('p').html(s);
            $.getJSON('市.json',function (data) {
                // console.log(data)
 var option = '<option>选择(市)</option>';
                $.each(data,function (i) {
                    // console.log(data[i]);
 if (data[i].proId == $('#pro').val()){
                        option = option+'<option value="'+data[i].cityId+'">'+data[i].cityName+'</option>';
                    }
                })
                $('#city').html(option);
            })
        })

        $('#city').change(function () {
            var s = $(this).find(':selected').text();
            var p = $('p').text();
            $('p').html(p+s);
            $.getJSON('区.json',function (data) {
                // console.log(data)
 var option = '<option>选择(区)</option>';
                $.each(data,function (i) {
                    // console.log(data[i]);
 if (data[i].cityId == $('#city').val()){
                        option = option+'<option value="'+data[i].areaId+'">'+data[i].areaName+'</option>';
                    }
                })
                $('#area').html(option);
            })
        })

        $('#area').change(function () {
            var s = $(this).find(':selected').text();
            var p = $('p').text();
            $('p').html(p+s);
        })
    })
</script>
</html>


[
  {
    "proId":1,
    "proName":"安徽"
  },
  {
    "proId":2,
    "proName":"江苏"
  }
]

[
  {
    "cityId":1,
    "cityName":"合肥",
    "proId":1
  },
  {
    "cityId":2,
    "cityName":"芜湖",
    "proId":1
  },
  {
    "cityId":1,
    "cityName":"南京",
    "proId":2
  },
  {
    "cityId":2,
    "cityName":"苏州",
    "proId":2
  }
]

[
  {
    "areaId":1,
    "areaName":"包河区",
    "cityId":1
  },
  {
    "areaId":2,
    "areaName":"蜀山区",
    "cityId":1
  },
  {
    "areaId":1,
    "areaName":"玄武区",
    "cityId":2
  },
  {
    "areaId":2,
    "areaName":"昆山区",
    "cityId":2
  }
]

第一先获取json文件的数据,并添加到选择框中
1.通过$.getjson()方法获取到json文件里的数据,$.each()方法遍历获取到的对象
2.可以使用对象的属性方法data[i].proId获取到对象的值和名称
3.创建一个变量option存储值和名称,拼接成选择框的格式<option></option>
4.将option添加到select框中

第二步选择框的change事件,通过获取选择框选中的值和第二级获取数据的proId比较
1.如果选择框选中的值和遍历获取到的对象的proId一致,变量option存储拼接值
2.将option添加到select框中

第三步  数据双向绑定
1.$(this).find(':selected').text()  获取当前选中的文本内容
2.将它添加到p标签中
3.获取到p标签的内容
3.将p标签的内容和当前选中的文本内容进行拼接    添加到p标签中


Correcting teacher:韦小宝Correction time:2019-01-22 13:12:29
Teacher's summary:掌握了三级联动的原理,以后写四级城市联动也是轻而易举的事情 继续加油吧

Release Notes

Popular Entries