当前位置:首页 > jquery

jquery二级联动

2026-03-16 14:30:50jquery

jQuery 实现二级联动的方法

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

准备 HTML 结构

jquery二级联动

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

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

定义数据源

jquery二级联动

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:

$("#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插件库提供了丰富的扩展功能,帮助开发者快速实现常见的前端交互效果。以下是一些常用的jQuery插件库和资源: 1. 官方jQuery插件注册中心jQuery Pl…

jquery怎么读

jquery怎么读

jQuery的发音 jQuery的正确发音为 "jay-query"(/ˈdʒeɪkwɪəri/)。其中: "jay" 发字母 "J" 的音(如英文单词 "jump" 的首音)。 "query" 读…

jquery 菜鸟

jquery 菜鸟

以下是针对 jQuery 初学者的基础指南,涵盖核心概念和常用操作: jQuery 简介 jQuery 是一个快速、轻量级的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和…

jquery之家

jquery之家

jQuery之家资源推荐 jQuery之家(通常指提供jQuery相关资源的网站或社区)是开发者获取插件、教程和代码示例的重要平台。以下是几个与jQuery相关的优质资源网站: 1. jQuery官…

jquery 选择

jquery 选择

jQuery 选择器基础 jQuery 选择器基于 CSS 选择器语法,用于快速定位和操作 DOM 元素。核心语法为 $() 或 jQuery(),括号内传入选择器表达式。 // 选择所有 <…

jquery 使用

jquery 使用

jQuery 基础使用 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互的操作。以下是 jQuery 的基本使用方法。 引入…