You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS如何选中类名以数字结尾的元素实现hover对应显示内容效果

问题排查

你当前的代码存在两个核心问题:

  1. 没有对icon和box的编号做匹配逻辑,hover任意cr-icon都会统一修改所有cr-box元素的透明度,无法实现对应编号的联动效果
  2. 缺少对当前hover元素编号的提取步骤,无法精准定位到要显示的目标box

解决方案

修正后JS代码

// 初始化所有cr-box为隐藏状态
$('[class^="cr-box"]').css("opacity", "0");

$('[class^="cr-icon"]').hover(function() {
  // 提取当前hover icon的数字编号
  const iconNum = $(this).attr('class').match(/cr-icon-(\d+)/)[1];
  // 仅显示对应编号的box
  $(`.cr-box-${iconNum}`).css("opacity", "1");
}, function() {
  // 鼠标离开时隐藏对应编号的box
  const iconNum = $(this).attr('class').match(/cr-icon-(\d+)/)[1];
  $(`.cr-box-${iconNum}`).css("opacity", "0");
});

优化建议

  • 若需要平滑的显隐过渡效果,可补充CSS规则:
    .cr-wrap [class^="cr-box"] {
      transition: opacity 0.25s ease;
    }
    
  • 若元素class可能存在其他类名干扰匹配,可给icon新增自定义属性存编号,匹配稳定性更高:
    <!-- html部分给path加自定义属性 -->
    <path class="cr-icon-1" data-num="1">icon main image</path>
    
    对应JS提取编号逻辑修改为:
    const iconNum = $(this).data('num');
    

内容的提问来源于stack exchange,提问作者Husna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:18:02