当前位置:首页 > jquery

jquery二级联动

2026-04-08 11:28:01jquery

jQuery 实现二级联动的方法

二级联动通常指两个下拉菜单(<select>)之间的动态关联,即第一个下拉菜单的选择会影响第二个下拉菜单的选项内容。以下是实现方法:

基本HTML结构

创建两个下拉菜单,并为第一个菜单绑定change事件:

<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: ["杭州", "宁波", "温州"]
};

jQuery 事件绑定

监听省份下拉菜单的变化,动态更新城市下拉菜单:

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

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

  if (provinceId && cityData[provinceId]) {
    $.each(cityData[provinceId], function(index, cityName) {
      $citySelect.append(`<option value="${cityName}">${cityName}</option>`);
    });
  }
});

动态加载数据(可选)

如果需要从后端加载数据:

jquery二级联动

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

  $.get("/api/cities?province=" + provinceId, function(data) {
    const $citySelect = $("#city");
    $citySelect.empty();

    $.each(data, function(index, item) {
      $citySelect.append(`<option value="${item.id}">${item.name}</option>`);
    });
  });
});

注意事项

  • 确保在DOM加载完成后执行脚本,可以将代码放在$(document).ready()
  • 对于动态生成的元素,可能需要使用事件委托
  • 清空二级菜单时保留默认选项(如“请选择”)
  • 考虑添加加载状态提示(如禁用下拉菜单或显示loading图标)

完整示例

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

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

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

    if (provinceId && cityData[provinceId]) {
      $.each(cityData[provinceId], function(index, cityName) {
        $citySelect.append(`<option value="${cityName}">${cityName}</option>`);
      });
    }
  });
});
</script>

标签: jquery
分享给朋友:

相关文章

jquery实现vue

jquery实现vue

jQuery 和 Vue.js 是两种不同理念的前端工具,前者基于 DOM 操作,后者基于数据驱动。虽然 Vue 可以替代 jQuery 的大部分功能,但若需在 Vue 中临时集成 jQuery 或模…

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

jquery加载

jquery加载

jQuery 加载方法 使用 CDN 加载 jQuery 推荐通过公共 CDN(如 Google、Microsoft 或 jQuery 官方)加载,速度快且可能已被浏览器缓存。 <scri…

jquery 效果

jquery 效果

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。jQuery 提供了丰富的效果(Effects)功能,可以轻松实现元素的动态显…

jquery li

jquery li

jQuery 操作 <li> 元素的方法 jQuery 提供了多种方法来操作 HTML 中的 <li> 元素(列表项)。以下是常见的使用场景和示例: 选择 <li&…

jquery vue

jquery vue

jQuery 与 Vue.js 的对比 jQuery 和 Vue.js 是两种不同的前端技术,适用于不同的开发场景。 jQuery 用途:主要用于 DOM 操作、事件处理和 AJAX 请求。…