基于json的jquery地区联动效果代码

下面是介绍“基于json的jquery地区联动效果代码”的完整攻略及示例:

1. 代码介绍

这段代码使用了jQuery库,通过JSON数据实现了省市县的三级联动,用户选择省份后,其下面的市区和县区也会随之更新。

代码大致流程包括:

  • 读取JSON数据
  • 给省份下拉框添加change监听事件
  • 根据选中的省份更新对应的市区和县区下拉框

下面是代码示例:

// 读取JSON数据
$.getJSON("area.json", function(data) {
  // 给省份下拉框添加选项
  var provinceSelect = $("#province");
  $.each(data, function(key, val) {
    provinceSelect.append("<option value='" + key +"'>" + val.name + "</option>");
  });

  // 给省份下拉框添加change监听事件,根据选中的省份更新市区和县区
  provinceSelect.change(function() {
    var selectedProvince = $(this).val();
    var citySelect = $("#city");
    var countySelect = $("#county");

    // 更新市区下拉框
    citySelect.empty().append("<option value=''>请选择</option>");
    $.each(data[selectedProvince].cityList, function(key, val) {
      citySelect.append("<option value='" + key +"'>" + val.name + "</option>");
    });

    // 更新县区下拉框
    countySelect.empty().append("<option value=''>请选择</option>");
    $.each(data[selectedProvince].cityList[0].countyList, function(key, val) {
      countySelect.append("<option value='" + val.name +"'>" + val.name + "</option>");
    });
  });

});

2. 示例说明

示例1

地区数据为:

{
  "湖南省": {
    "name": "湖南省",
    "cityList": {
      "长沙市": {
        "name": "长沙市",
        "countyList": [
          {"name":"天心区"},
          {"name":"岳麓区"},
          {"name":"芙蓉区"}
        ]
      },
      "株洲市": {
        "name": "株洲市",
        "countyList": [
          {"name":"天元区"},
          {"name":"荷塘区"},
          {"name":"石峰区"}
        ]
      }
    }
  }
}

在html中添加下拉框:

<select id="province"></select>
<select id="city"></select>
<select id="county"></select>

在JavaScript中使用示例:

$(document).ready(function() {

  // 加载地区数据
  $.getJSON("area.json", function(data) {
    // 添加省份选项
    var provinceSelect = $("#province");
    $.each(data, function(key, val) {
      provinceSelect.append("<option value='" + key +"'>" + val.name + "</option>");
    });

    // 更新市区和县区选项
    provinceSelect.change(function() {
      var selectedProvince = $(this).val();
      var citySelect = $("#city");
      var countySelect = $("#county");

      // 更新市区选项
      citySelect.empty().append("<option value=''>请选择</option>");
      $.each(data[selectedProvince].cityList, function(key, val) {
        citySelect.append("<option value='" + key +"'>" + val.name + "</option>");
      });

      // 更新县区选项
      countySelect.empty().append("<option value=''>请选择</option>");
      $.each(data[selectedProvince].cityList[0].countyList, function(key, val) {
        countySelect.append("<option value='" + val.name +"'>" + val.name + "</option>");
      });
    });

  });
});

当用户在下拉框中选中“湖南省”后,市区下拉框中就会显示“长沙市”和“株洲市”,县区下拉框会显示“天心区”、“岳麓区”、“芙蓉区”等选项。

示例2

地区数据为:

{
  "广东省": {
    "name": "广东省",
    "cityList": {
      "广州市": {
        "name": "广州市",
        "countyList": [
          {"name":"天河区"},
          {"name":"海珠区"},
          {"name":"白云区"}
        ]
      },
      "深圳市": {
        "name": "深圳市",
        "countyList": [
          {"name":"福田区"},
          {"name":"罗湖区"},
          {"name":"宝安区"}
        ]
      }
    }
  }
}

在html中添加下拉框:

<select id="province"></select>
<select id="city"></select>
<select id="county"></select>

在JavaScript中使用示例:

$(document).ready(function() {

  // 加载地区数据
  $.getJSON("area.json", function(data) {
    // 添加省份选项
    var provinceSelect = $("#province");
    $.each(data, function(key, val) {
      provinceSelect.append("<option value='" + key +"'>" + val.name + "</option>");
    });

    // 更新市区和县区选项
    provinceSelect.change(function() {
      var selectedProvince = $(this).val();
      var citySelect = $("#city");
      var countySelect = $("#county");

      // 更新市区选项
      citySelect.empty().append("<option value=''>请选择</option>");
      $.each(data[selectedProvince].cityList, function(key, val) {
        citySelect.append("<option value='" + key +"'>" + val.name + "</option>");
      });

      // 更新县区选项
      countySelect.empty().append("<option value=''>请选择</option>");
      $.each(data[selectedProvince].cityList[0].countyList, function(key, val) {
        countySelect.append("<option value='" + val.name +"'>" + val.name + "</option>");
      });
    });

  });
});

当用户在下拉框中选中“广东省”后,市区下拉框中就会显示“广州市”和“深圳市”,县区下拉框会显示“天河区”、“海珠区”、“白云区”等选项。

希望这个示例对你有帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于json的jquery地区联动效果代码 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js获取标签元素data-*属性值的4种方法

    下面是详细的“js获取标签元素data-*属性值的4种方法”攻略: 1. 使用getAttribute()方法 getAttribute() 方法用于返回指定属性名的属性值。可以通过该方法获取元素的任意属性,包括 data-* 属性。 const element = document.querySelector(‘#myElement’); const da…

    jquery 2023年5月28日
    00
  • jQWidgets jqxNotification autoClose属性

    以下是关于 jQWidgets jqxNotification 组件中 autoClose 属性的详细攻略。 jQWidgets jqxNotification autoClose 属性 jQWidgets jqxNotification 的 autoClose 属性用于设置通知组件是否自动关闭。 语法 // 设置通知组件是否自动关闭 $(‘#notific…

    jquery 2023年5月12日
    00
  • jQuery实现动态添加tr到table的方法

    下面是“jQuery实现动态添加tr到table的方法”的完整攻略。 方法概述 jQuery可以通过append()或者appendTo()等方法动态添加html元素到文档中。所以,我们可以使用这些方法来动态添加<tr>标签到<table>中。 代码实现 我们可以在jQuery中使用append()方法将HTML字符串作为参数插入到&…

    jquery 2023年5月28日
    00
  • jQuery UI的Selectmenu open事件

    jQuery UI的Selectmenu open事件详解 jQuery UI的Selectmenu是一个下拉菜单插件,它允许用户从预定义的选项中进行选择。在本文中,我们将详细介绍Selectmenu的open事件的用法和示例。 open事件 open事件是Selectmenu插件中的事件,它在选择菜单打开时触发。可以使用该事件菜单打开时执行一些操作。 语法…

    jquery 2023年5月11日
    00
  • js jquery获取当前元素的兄弟级 上一个 下一个元素

    要获取当前元素的兄弟元素,我们可以使用jQuery提供的siblings()方法,该方法可以获取当前元素的所有兄弟元素。如果只需要获取特定的兄弟元素,则可以使用next()和prev()方法。 下面是获取当前元素的所有兄弟元素的语法: $(selector).siblings(); 其中,selector是要获取兄弟元素的元素选择器。例如,如果需要获取cla…

    jquery 2023年5月28日
    00
  • jQWidgets jqxBulletChart render()方法

    jQWidgets jqxBulletChart render() 方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxBulletChart是其中之一。本文将详细介绍jqxBulletChart的render()方法,包括定义、语法和示例。 render() 方法的定义 jqxBulletChart的render…

    jquery 2023年5月10日
    00
  • jQuery EasyUI封装简化操作

    下面是jQuery EasyUI封装简化操作的完整攻略。 1. 简介 jQuery EasyUI是一款基于jQuery库的UI插件集合,它提供了诸如表格、图表、对话框、下拉框、树形结构等众多组件。使用jQuery EasyUI可以快速搭建出一个美观易用的Web界面。 但是,由于jQuery EasyUI的组件会使用很多JavaScript代码,使用起来可能比…

    jquery 2023年5月28日
    00
  • jQuery实现获取动态添加的标签对象示例

    使用jQuery获取动态添加的标签对象的示例攻略如下: 1. 使用on()方法实现事件委托 动态添加的标签对象在文档准备就绪时,是不存在的,因此我们需要通过事件委托的方式来监听这些标签的新增和操作事件。常用的是使用on()方法来实现事件委托,代码示例如下: $(document).on(‘click’, ‘.dynamic-tag’, function(){…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部