javascript实现省市区三级联动选择的代码(数据为模拟json数据)

简介: javascript实现省市区三级联动选择的代码(数据为模拟json数据):

javascript实现省市区三级联动选择的代码(数据为模拟json数据)



<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script src="js/jquery-1.11.1.min.js"></script>
    <style>
      select{
        width:100px;  
      }
    </style>
  </head>
  <body>
    省:
    <select name="" id="sheng">
      <option value="">请选择</option>
    </select>
    市:
    <select name="" id="shi" disabled="disabled">
      <option value="">请选择</option>
    </select>
    区:
    <select name="" id="qu" disabled="disabled">
      <option value="">请选择</option>
    </select>
    <script type="text/javascript">
      //省
      $.getJSON("data/local_P.json",function(date){
        date.forEach(function(item){
          var pOption = "<option value='"+item.id+"'>"+item.nameP+"</option>";
          $("#sheng").append(pOption);
        });
      });
      //市
      $("#sheng").change(function(){
        $("#shi").attr("disabled",false);
        $("#shi").children(":not(:first)").remove();
        $("#qu").children(":not(:first)").remove();
        $.getJSON("data/local_S.json",function(date){
          var pId = $("#sheng").val();
          date.forEach(function(item){
            if(item.p_id == pId){
              var sOption = "<option value='"+item.s_id+"'>"+item.nameS+"</option>";
              $("#shi").append(sOption);
            }
          });
        });
      });
      //区
      $("#shi").change(function(){
        $("#qu").attr("disabled",false);
        $("#qu").children(":not(:first)").remove();
        $.getJSON("data/local_q.json",function(date){
          console.log(date);
          var sId = $("#shi").val();
          date.forEach(function(item){
            if(item.s_id == sId){
              var qOption = "<option value='"+item.id_q+"'>"+item.nameq+"</option>";
              $("#qu").append(qOption);
            }
          });
        });
      });
    </script>
  </body>
</html>


数据为模拟数据,注意模拟的json数据每一项都要加双引号,否则 $.getJson()获取不到数据,json数据如下;


local_P.json:  


  [{
  "id":"1001",
  "nameP":"江苏"
},{
  "id":"1002",
  "nameP":"浙江"
}]


local_S.json:


[{
  "p_id":"1001",
  "s_id":"101",
  "nameS":"苏州"
},{
  "p_id":"1001",
  "s_id":"102",
  "nameS":"南通"
},{
  "p_id":"1002",
  "s_id":"201",
  "nameS":"金华"
},{
  "p_id":"1002",
  "s_id":"202",
  "nameS":"杭州"
}]


local_q.json:


[{
  "s_id":"102",
  "id_q":"10201",
  "nameq":"如皋"
},{
  "s_id":"102",
  "id_q":"10202",
  "nameq":"海门"
},{
  "s_id":"101",
  "id_q":"10203",
  "nameq":"吴中"
},{
  "s_id":"101",
  "id_q":"10204",
  "nameq":"高新区"
},{
  "s_id":"201",
  "id_q":"20203",
  "nameq":"金东"
},{
  "s_id":"201",
  "id_q":"20204",
  "nameq":"义乌"
},{
  "s_id":"202",
  "id_q":"20201",
  "nameq":"杭州下属市1"
},{
  "s_id":"202",
  "id_q":"20202",
  "nameq":"杭州下属市2"
}]


以上,是自己模拟json数据写的省市区三级联动选择的例子,注意json数据的格式问题。

目录
打赏
0
0
0
0
1
分享
相关文章
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——封装统一返回的数据结构
本文介绍了在Spring Boot中封装统一返回的数据结构的方法。通过定义一个泛型类`JsonResult&lt;T&gt;`,包含数据、状态码和提示信息三个属性,满足不同场景下的JSON返回需求。例如,无数据返回时可设置默认状态码&quot;0&quot;和消息&quot;操作成功!&quot;,有数据返回时也可自定义状态码和消息。同时,文章展示了如何在Controller中使用该结构,通过具体示例(如用户信息、列表和Map)说明其灵活性与便捷性。最后总结了Spring Boot中JSON数据返回的配置与实际项目中的应用技巧。
56 0
|
9天前
|
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——使用 fastJson 处理 null
本文介绍如何使用 fastJson 处理 null 值。与 Jackson 不同,fastJson 需要通过继承 `WebMvcConfigurationSupport` 类并覆盖 `configureMessageConverters` 方法来配置 null 值的处理方式。例如,可将 String 类型的 null 转为 &quot;&quot;,Number 类型的 null 转为 0,避免循环引用等。代码示例展示了具体实现步骤,包括引入相关依赖、设置序列化特性及解决中文乱码问题。
33 0
|
9天前
|
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——Spring Boot 默认对Json的处理
本文介绍了在Spring Boot中返回Json数据的方法及数据封装技巧。通过使用`@RestController`注解,可以轻松实现接口返回Json格式的数据,默认使用的Json解析框架是Jackson。文章详细讲解了如何处理不同数据类型(如类对象、List、Map)的Json转换,并提供了自定义配置以应对null值问题。此外,还对比了Jackson与阿里巴巴FastJson的特点,以及如何在项目中引入和配置FastJson,解决null值转换和中文乱码等问题。
34 0
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
JSON数据解析实战:从嵌套结构到结构化表格
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
淘宝商品详情API接口概述与JSON数据示例
淘宝商品详情API是淘宝开放平台提供的核心接口之一,为开发者提供了获取商品深度信息的能力。以下是技术细节和示例:
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
array.every()可以用来数据验证、权限检查、一致性检查等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

热门文章

最新文章