当前位置:首页 > jquery

jquery省市二级联动

2026-02-04 09:11:21jquery

jQuery 实现省市二级联动

省市二级联动是一种常见的表单交互功能,用户选择省份后,城市下拉框自动加载对应的城市列表。以下是实现方法:

数据结构准备

需要准备一个包含省市关联关系的数据结构,通常使用对象或数组存储:

jquery省市二级联动

var cityData = {
    "北京": ["东城区", "西城区", "朝阳区", "海淀区"],
    "上海": ["黄浦区", "徐汇区", "长宁区", "静安区"],
    "广东": ["广州市", "深圳市", "珠海市", "东莞市"]
};

HTML 结构

创建两个 select 元素分别用于选择省份和城市:

<select id="province">
    <option value="">请选择省份</option>
</select>

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

初始化省份列表

使用 jQuery 遍历数据对象的键(省份)并填充到省份下拉框:

jquery省市二级联动

$(document).ready(function() {
    $.each(cityData, function(province, cities) {
        $('#province').append($('<option>').val(province).text(province));
    });
});

绑定 change 事件

当省份选择发生变化时,清空城市下拉框并重新填充对应的城市列表:

$('#province').change(function() {
    var selectedProvince = $(this).val();
    $('#city').empty().append($('<option>').val('').text('请选择城市'));

    if (selectedProvince) {
        $.each(cityData[selectedProvince], function(index, city) {
            $('#city').append($('<option>').val(city).text(city));
        });
    }
});

完整代码示例

<!DOCTYPE html>
<html>
<head>
    <title>省市二级联动</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <select id="province">
        <option value="">请选择省份</option>
    </select>
    <select id="city">
        <option value="">请选择城市</option>
    </select>

    <script>
        var cityData = {
            "北京": ["东城区", "西城区", "朝阳区", "海淀区"],
            "上海": ["黄浦区", "徐汇区", "长宁区", "静安区"],
            "广东": ["广州市", "深圳市", "珠海市", "东莞市"]
        };

        $(document).ready(function() {
            $.each(cityData, function(province, cities) {
                $('#province').append($('<option>').val(province).text(province));
            });

            $('#province').change(function() {
                var selectedProvince = $(this).val();
                $('#city').empty().append($('<option>').val('').text('请选择城市'));

                if (selectedProvince) {
                    $.each(cityData[selectedProvince], function(index, city) {
                        $('#city').append($('<option>').val(city).text(city));
                    });
                }
            });
        });
    </script>
</body>
</html>

动态加载数据

如果数据量较大,建议通过 AJAX 从服务器动态加载省市数据:

$.get('/api/provinces', function(provinces) {
    $.each(provinces, function(index, province) {
        $('#province').append($('<option>').val(province.id).text(province.name));
    });
});

$('#province').change(function() {
    var provinceId = $(this).val();
    $.get('/api/cities?province_id=' + provinceId, function(cities) {
        $('#city').empty();
        $.each(cities, function(index, city) {
            $('#city').append($('<option>').val(city.id).text(city.name));
        });
    });
});

注意事项

  • 确保数据结构的正确性,省份和城市对应关系要准确
  • 处理空选择的情况,避免出现 undefined 错误
  • 对于大型数据集,考虑使用分步加载或懒加载提高性能
  • 移动端使用时注意触摸事件的兼容性

以上方法可以实现基本的省市二级联动功能,根据实际需求可以进一步扩展和优化。

标签: 省市jquery
分享给朋友:

相关文章

jquery之家

jquery之家

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

jquery获取radio选中的值

jquery获取radio选中的值

获取radio选中的值 使用jQuery获取被选中的radio按钮的值可以通过以下几种方法实现: 方法1:使用:checked选择器 var selectedValue = $('input[na…

jquery特效

jquery特效

jQuery 常见特效实现方法 淡入淡出效果 使用 fadeIn() 和 fadeOut() 方法实现元素的渐显和渐隐效果。可通过参数控制动画持续时间(毫秒)和缓动函数。 $("#element"…

jquery div

jquery div

jQuery 操作 div 元素 jQuery 提供了多种方法来操作 div 元素,包括选择、修改内容、样式调整、事件绑定等。以下是常见操作的示例: 选择 div 元素 通过 ID 选择 div:…

使用jquery

使用jquery

引入jQuery库 在HTML文件中通过<script>标签引入jQuery库。可以从CDN加载,例如: <script src="https://code.jquery.com…

jquery 效果

jquery 效果

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