当前位置:首页 > jquery

jquery二级联动

2026-03-16 14:30:50jquery

jQuery 实现二级联动的方法

二级联动通常指两个下拉菜单(<select>)之间的关联,即第一个下拉菜单的选项变化时,第二个下拉菜单的选项动态更新。以下是实现方法:

准备 HTML 结构

<select id="province">
  <option value="">请选择省份</option>
  <option value="gd">广东省</option>
  <option value="zj">浙江省</option>
</select>

<select id="city">
  <option value="">请选择城市</option>
</select>

定义数据源

const cityData = {
  gd: ["广州", "深圳", "珠海"],
  zj: ["杭州", "宁波", "温州"]
};

绑定 change 事件

$("#province").change(function() {
  const provinceId = $(this).val();
  const $citySelect = $("#city");

  $citySelect.empty().append('<option value="">请选择城市</option>');

  if (provinceId) {
    const cities = cityData[provinceId];
    $.each(cities, function(index, city) {
      $citySelect.append($('<option>').val(city).text(city));
    });
  }
});

动态加载数据的扩展方法

如果需要从服务器获取数据,可以使用 AJAX:

jquery二级联动

$("#province").change(function() {
  const provinceId = $(this).val();
  const $citySelect = $("#city");

  $citySelect.empty().append('<option value="">请选择城市</option>');

  if (provinceId) {
    $.get('/api/cities?province=' + provinceId, function(data) {
      $.each(data, function(index, city) {
        $citySelect.append($('<option>').val(city.id).text(city.name));
      });
    });
  }
});

注意事项

  • 确保 DOM 完全加载后再绑定事件,可以将代码放在 $(document).ready()
  • 对于大量数据,考虑添加加载状态提示
  • 移动端使用时注意触摸事件的兼容性

完整示例代码

<!DOCTYPE html>
<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
  <select id="province">
    <option value="">请选择省份</option>
    <option value="gd">广东省</option>
    <option value="zj">浙江省</option>
  </select>

  <select id="city">
    <option value="">请选择城市</option>
  </select>

  <script>
    $(function() {
      const cityData = {
        gd: ["广州", "深圳", "珠海"],
        zj: ["杭州", "宁波", "温州"]
      };

      $("#province").change(function() {
        const provinceId = $(this).val();
        const $citySelect = $("#city");

        $citySelect.empty().append('<option value="">请选择城市</option>');

        if (provinceId) {
          const cities = cityData[provinceId];
          $.each(cities, function(index, city) {
            $citySelect.append($('<option>').val(city).text(city));
          });
        }
      });
    });
  </script>
</body>
</html>

标签: jquery
分享给朋友:

相关文章

jquery下载

jquery下载

jQuery下载方法 官方下载渠道 访问jQuery官网(https://jquery.com/),点击页面中的“Download”按钮。提供两个版本选择: Production版本:压缩后的精…

jquery 添加

jquery 添加

jQuery 添加元素的方法 动态添加 HTML 内容 使用 append()、prepend()、after() 或 before() 方法可以在 DOM 中插入新元素。 // 在元素内部末尾…

jquery 加载

jquery 加载

jQuery 加载方法 使用jQuery需要先将其库文件加载到网页中。以下是几种常见的加载方式: 通过CDN加载 推荐使用官方或公共CDN(内容分发网络)加载jQuery,速度快且可能被浏览器缓存:…

jquery表单

jquery表单

jQuery 表单操作 jQuery 提供了丰富的 API 用于表单操作,包括表单元素的选择、值获取与设置、事件处理等。 表单元素选择 使用 jQuery 选择器可以方便地选取表单元素: // 选…

jquery获取元素

jquery获取元素

jQuery 获取元素的方法 jQuery 提供了多种方法来获取 DOM 元素,以下是常见的几种方式: 通过 ID 选择器获取元素 使用 #id 选择器可以获取具有特定 ID 的元素。例如: $(…

jquery 动画

jquery 动画

jQuery 动画基础 jQuery 提供了一系列动画方法,用于实现元素的动态效果,如淡入淡出、滑动、自定义动画等。 常用动画方法 fadeIn() / fadeOut(): 元素的淡入和…