0

0

如何使用 jQuery 实现多个 div 的独立切换显示与隐藏

碧海醫心

碧海醫心

发布时间:2026-01-13 20:17:02

|

881人浏览过

|

来源于php中文网

原创

如何使用 jQuery 实现多个 div 的独立切换显示与隐藏

本文介绍一种无需 cookie 或 localstorage 的纯前端方案,通过 jquery 精确控制多个按钮与对应 div 的显隐状态,支持逐个切换、批量控制及视觉反馈,兼顾可维护性与用户体验。

在实际开发中,常需实现“按钮控制对应区域显隐”的交互逻辑——例如多选项卡、折叠面板或筛选模块。原问题中的代码仅做单次切换(toggle()),但未处理“其他元素应保持初始可见”这一关键需求,导致状态混乱。正确思路是:每次操作前先重置全局状态(全部显示 + 移除禁用样式),再基于当前选中项更新目标元素

以下为推荐实现方案(已优化结构与语义):

✅ 推荐方案:基于复选框的语义化控制

使用 替代原

妙笔工坊
妙笔工坊

妙笔工坊是一个集短剧解说,AI视频生成,口播数字人,小说推文生成的ai智能工具

下载
Div 1 content
Div 2 content
Div 3 content
$(function() {
  const $checkboxes = $('input[type="checkbox"]');
  const $panels = $('.content-panel');

  $checkboxes.on('change', function() {
    // 步骤1:重置所有按钮样式和面板状态
    $('.inactive').removeClass('inactive');
    $panels.show();

    // 步骤2:若无任何勾选,则全部显示(默认行为)
    const $checked = $checkboxes.filter(':checked');
    if ($checked.length === 0) return;

    // 步骤3:标记未选中按钮为 inactive,并隐藏所有面板
    $checkboxes.filter(':not(:checked)')
      .closest('label')
      .addClass('inactive');
    $panels.hide();

    // 步骤4:仅显示当前选中的对应面板
    $checked.each(function() {
      const targetId = '#mydiv' + $(this).val();
      $(targetId).show();
    });
  });
});

配套 CSS(增强交互反馈):

.inactive { opacity: 0.6; cursor: not-allowed; }
label { 
  display: inline-block; 
  margin-right: 12px; 
  padding: 4px 8px; 
  border-radius: 4px; 
  background: #f5f5f5; 
}
.content-panel { 
  margin-top: 12px; 
  padding: 12px; 
  border-left: 3px solid #007bff; 
  background: #f8f9fa; 
}

⚠️ 注意事项

  • 避免 toggle() 直接滥用:toggle() 依赖元素当前 display 值判断,易受 CSS 干扰;显式调用 show()/hide() 更可控。
  • 性能优化:使用 .filter(':checked') 比循环遍历更高效;缓存 $checkboxes 和 $panels 避免重复 DOM 查询。
  • 扩展建议:如需支持“全选/反选”,可额外添加一个主控 checkbox,并绑定 change 事件同步子项状态。
  • 无障碍增强:为

该方案完全脱离本地存储,状态由 DOM 实时驱动,简洁可靠,适用于大多数多区域切换场景。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

150

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

393

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

494

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

179

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

118

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

172

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

1

2026.01.13

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

CSS教程
CSS教程

共754课时 | 18.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号