新闻中心

J*aScript 实现 Hover 联动:根据 ID 匹配不同父元素下的元素

2025-10-17
浏览次数:
返回列表

javascript 实现 hover 联动:根据 id 匹配不同父元素下的元素

本文将介绍如何使用 J*aScript 实现一个常见的交互效果:当鼠标悬停在一个区域的特定元素上时,联动改变另一个区域中具有相同 ID 的元素的样式。我们将通过事件监听和 DOM操作,实现当鼠标悬停在 `.first` 区域的 `

  • ` 元素上时,`.second` 区域中具有相同 ID 的 `
  • ` 元素添加 `.active` 类,移开鼠标时移除该类。这种方法适用于 ID 动态生成的情况,提供了一种灵活的解决方案。

    实现原理

    核心思路是通过 J*aScript 监听 .first 区域内

  • 元素的 mouseover 和 mouseout 事件。当 mouseover 事件触发时,获取当前
  • 元素的 ID,然后使用 querySelectorAll 查找所有具有相同 ID 的元素,并为第二个匹配到的元素(即 .second 区域内的元素)添加 .active 类。当 mouseout 事件触发时,执行相反的操作,移除 .active 类。

    具体实现步骤

    1. HTML 结构: 首先,我们需要定义 HTML 结构,包含两个区域 .first 和 .second,每个区域包含一个

        列表,列表中的
      • 元素具有相同的 ID。
        <div class="first">
          <ul>
            <li id="one">Lorem</li>
            <li id="two">Ipsum</li>
            <li id="three">Dolor</li>
          </ul>
        </div>
        
        <div class="second">
          <ul>
            <li id="one">Lorem</li>
            <li id="two">Ipsum</li>
            <li id="three">Dolor</li>
          </ul>
        </div>
      • J*aScript 代码: 接下来,编写 J*aScript 代码来实现 hover 联动效果。

        document.querySelectorAll(".first ul li").forEach(li => {
          li.addEventListener("mouseover", e => {
            document.querySelectorAll(`#${e.target.id}`)[1].classList.add("active");
          });
          li.addEventListener("mouseout", e => {
            document.querySelectorAll(`#${e.target.id}`)[1].classList.remove("active");
          });
        });

        这段代码首先使用 querySelectorAll 选择 .first 区域内所有的

      • 元素。然后,使用 forEach 循环遍历这些元素,并为每个元素添加 mouseover 和 mouseout 事件监听器。

        在 mouseover 事件处理函数中,e.target.id 获取当前

        万相营造 万相营造

        阿里妈妈推出的AI电商营销工具

        万相营造 168 查看详情 万相营造
      • 元素的 ID。然后,使用 querySelectorAll(\#${e.target.id}`)[1]查找所有具有相同 ID 的元素,并选择第二个匹配到的元素。最后,使用classList.add("active")为该元素添加.active` 类。

        mouseout 事件处理函数执行相反的操作,使用 classList.remove("active") 移除 .active 类。

      • CSS 样式: 为了使 .active 类生效,我们需要定义相应的 CSS 样式。

        .active {
          background: #CCC;
        }

        这段代码定义了 .active 类的样式,将背景色设置为灰色。

    代码示例

    将以上 HTML、J*aScript 和 CSS 代码整合在一起,即可实现完整的 hover 联动效果。

    <!DOCTYPE html>
    <html>
    <head>
      <title>Hover 联动示例</title>
      <style>
        .active {
          background: #CCC;
        }
      </style>
    </head>
    <body>
    
      <div class="first">
        <ul>
          <li id="one">Lorem</li>
          <li id="two">Ipsum</li>
          <li id="three">Dolor</li>
        </ul>
      </div>
    
      <div class="second">
        <ul>
          <li id="one">Lorem</li>
          <li id="two">Ipsum</li>
          <li id="three">Dolor</li>
        </ul>
      </div>
    
      <script>
        document.querySelectorAll(".first ul li").forEach(li => {
          li.addEventListener("mouseover", e => {
            document.querySelectorAll(`#${e.target.id}`)[1].classList.add("active");
          });
          li.addEventListener("mouseout", e => {
            document.querySelectorAll(`#${e.target.id}`)[1].classList.remove("active");
          });
        });
      </script>
    
    </body>
    </html>

    注意事项

    • ID 唯一性: 虽然本例中依赖 ID 进行匹配,但请确保页面中 ID 的唯一性,以避免潜在的问题。
    • 性能优化: 如果列表数量非常大,频繁的 DOM 操作可能会影响性能。可以考虑使用事件委托或其他优化技巧。
    • 可维护性: 为了提高代码的可维护性,可以将 J*aScript 代码封装成函数或模块。

    总结

    本文介绍了如何使用 J*aScript 实现 hover 联动效果,通过监听事件和 DOM 操作,实现了当鼠标悬停在一个区域的元素上时,联动改变另一个区域中具有相同 ID 的元素的样式。这种方法适用于 ID 动态生成的情况,提供了一种灵活的解决方案。同时,也需要注意 ID 唯一性、性能优化和代码可维护性等方面的问题。

  • 以上就是J*aScript 实现 Hover 联动:根据 ID 匹配不同父元素下的元素的详细内容,更多请关注其它相关文章!


    # 当鼠标  # 社交网站建设解决方案  # 民宿营销推广方案案例  # 安徽专业seo  # 托管运营推广网站  # 全网通营销推广平台官网  # 十堰网站推广厂家  # 河南抖音seo项目公司  # 福建seo公司推荐排名  # 网站推广kpi指标  # 光明区营销推广公司  # 如何使用  # 并为  # css  # 第二个  # 这段  # 适用于  # 单选框  # 移除  # 上时  # 表单  # ssl  # seo  # html  # java  # javascript 


    相关栏目: 【 科技资讯46185 】 【 网络学院92790


    相关推荐: CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠  LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  Go RPC HTTP服务正确实现与常见陷阱解析  Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践  CSS图片焦点样式实现教程:理解与应用tabindex属性  c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换  Python实时数据流中的动态最值查找策略  KFC套餐升级怎么获取优惠代码_KFC套餐升级活动与优惠代码获取方法  高德地图公交到站提醒失败如何解决 高德提醒权限设置  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  双系统安装时,如何设置默认启动系统? msconfig命令了解一下!  汽水音乐在线版入口_汽水音乐网页播放手册  Composer如何在生产环境安全地执行composer update  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  小米汽车11月交付量突破40000台!雷军:将继续努力  从J*aScript对象中精确提取指定属性的教程  HTML长属性值处理:表单action路径优化与代码规范应对  192.168.1.1管理中心入口 192.168.1.1路由器网页设置平台  Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】  b站怎么看视频的弹幕数量_b站弹幕数量查看方法  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台  Pandas DataFrame:高效添加条件计算列  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南  PDF文件体积过大处理_PDF压缩技巧详解  C++ string find函数返回值npos详解_C++字符串查找失败的判断条件  夸克AO3官网入口_AO3镜像网站2025推荐  手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析  企业名称高精度匹配:N-gram方法在结构相似性分析中的应用  126邮箱网页版官方入口 126邮箱账号在线登录平台  Animex动漫社网入口地址 Animex动漫社网正版在线入口  Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation  将JSON对象数组转置为键值对列表的实用指南  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法  NetBeans Ant项目:自动化将资源文件复制到dist目录的教程  12306选座怎么选到特殊座位_12306特殊座位选择注意事项  抓大鹅解压小游戏 抓大鹅摸鱼解压入口  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  J*aScript设计模式实践_j*ascript代码优化  小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口  wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  mysql如何设置表访问权限_mysql表访问权限配置  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧  淘宝支付提示失败如何解决 淘宝支付流程优化方法  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  j*a toString()的覆盖  限制HTML日期输入框的日期选择范围 

    搜索