
本文介绍如何将重复冗长的原生 javascript 事件监听代码,精简为仅需两行 jquery 的通用解决方案,统一处理多个“see more / see less”切换按钮及对应 copy 按钮的显隐与文本切换。
在实际开发中,面对多个结构一致的折叠面板(如信息卡片),若为每个按钮单独编写 addEventListener 和条件判断逻辑,不仅代码冗余、难以维护,还极易因索引错位引发 Bug。jQuery 提供了简洁高效的 DOM 遍历与事件委托能力,可将原本需重复三次(甚至更多)的逻辑,压缩为一次选择器匹配 + 一行事件处理。
✅ 核心优化方案
只需在页面引入 jQuery 后,添加以下两行脚本即可完成全部功能:
? 原理说明
- $('.SM') 一次性选取所有 class="SM" 的按钮,无需手动遍历 getElementsByClassName 数组;
- $(this).next('.Copy') 利用 jQuery 的 .next() 方法精准定位同级下一个 .Copy 按钮(HTML 中 .Copy 确实紧邻 .SM),避免依赖索引匹配,结构更健壮;
- .text((i, text) => ...) 是 jQuery 的回调语法,自动传入当前元素的原始文本,实现无状态切换;
- toggle() 内置显隐逻辑,比手动设置 display: block/none 更安全可靠。
⚠️ 注意事项
- 必须确保 jQuery 已加载:










