新闻中心

使用 J*aScript 通过 ID 匹配不同父元素中的元素(鼠标悬停时)

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

使用 javascript 通过 id 匹配不同父元素中的元素(鼠标悬停时)

本文介绍如何使用 J*aScript 实现当鼠标悬停在一个 `div.first` 中的 `li` 元素上时,为 `div.second` 中具有相同 ID 的 `li` 元素添加 `.active` 类。该方案适用于 ID 动态生成且事先未知的情况,并提供详细的 J*aScript 代码示例和 CSS 样式,方便读者理解和应用。

在 Web 开发中,有时我们需要实现一种交互效果:当鼠标悬停在一个区域的元素上时,另一个区域的对应元素也发生变化。本文将介绍如何使用 J*aScript 实现这一功能,具体来说,当鼠标悬停在一个 div.first 中的 li 元素上时,为 div.second 中具有相同 ID 的 li 元素添加 .active 类。

实现原理

核心思想是利用 J*aScript 监听 div.first 中所有 li 元素的 mouseover 和 mouseout 事件。当 mouseover 事件触发时,获取当前 li 元素的 ID,然后在 div.second 中查找具有相同 ID 的 li 元素,并添加 .active 类。当 mouseout 事件触发时,移除 .active 类。

代码实现

以下是完整的 J*aScript 代码实现:

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 类下的 ul 元素中的 li 元素。然后,使用 forEach 方法遍历这些 li 元素,并为每个元素添加 mouseover 和 mouseout 事件监听器。

在 mouseover 事件监听器中,e.target.id 获取当前鼠标悬停的 li 元素的 ID。然后,使用 querySelectorAll(#${e.target.id}) 查找具有相同 ID 的所有元素。由于我们需要操作的是 div.second 中的元素,因此我们使用 [1] 来获取第二个匹配的元素(第一个匹配的元素是 div.first 中的 li 元素本身)。最后,使用 classList.add("active") 为该元素添加 .active 类。

察言观数AskTable 察言观数AskTable

企业级AI数据表格智能体平台

察言观数AskTable 78 查看详情 察言观数AskTable

mouseout 事件监听器中的逻辑类似,只是将 classList.add("active") 替换为 classList.remove("active"),用于移除 .active 类。

HTML 结构

以下是 HTML 结构示例:

<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>

CSS 样式

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

.active {
  background: #CCC;
}

这段 CSS 代码会将具有 .active 类的元素的背景色设置为灰色。

注意事项

  • ID 唯一性: 此方法依赖于 ID 的唯一性。确保页面上所有 li 元素的 ID 都是唯一的,否则可能会导致意外的结果。
  • 性能优化: 如果页面上有大量的 li 元素,频繁的 querySelectorAll 操作可能会影响性能。可以考虑使用事件委托等技术进行优化。
  • 适用场景: 此方法适用于 ID 动态生成且事先未知的情况。如果 ID 是静态的,可以使用 CSS :hover 伪类和相邻兄弟选择器等方法来实现类似的效果,性能更高。

总结

本文介绍了如何使用 J*aScript 实现当鼠标悬停在一个 div.first 中的 li 元素上时,为 div.second 中具有相同 ID 的 li 元素添加 .active 类。该方案适用于 ID 动态生成且事先未知的情况,并提供了详细的代码示例和注意事项。希望本文能够帮助读者更好地理解和应用 J*aScript 技术。

以上就是使用 J*aScript 通过 ID 匹配不同父元素中的元素(鼠标悬停时)的详细内容,更多请关注其它相关文章!


# 这段  # 常平品牌营销推广  # 黄山seo整站优化软件  # 策划会展网站建设  # 万宁公司网站推广报价  # 怎么推广营销活动  # 关键词排名提升  # 遵义抖音seo能行吗  # 网络优化网站降权  # 番禺网站建设路烤肉  # 齐齐哈尔免费网站建设  # 移除  # 选择器  # css  # 单选框  # 如何使用  # 当鼠标  # 适用于  # 上时  # 表单  # 鼠标  # ssl  # seo  # html  # java  # javascript 


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


相关推荐: 怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  Python getattr() 异常处理深度解析:避免程序意外退出  DLsite中文平台入口 DLsite官网内容在线查看  如何有效阻止外部脚本意外修改内联样式的高度属性  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  Mac怎么查看崩溃日志_Mac控制台错误报告分析  12306几点到几点不能订票? | 官方最新系统维护时间全解析  MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略  vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法  夸克浏览器图书入口 夸克手机浏览器阅读入口  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  J*a里如何使用forEach遍历Map_Map遍历方法说明  如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】  J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案  MongoDB聚合管道:正确匹配对象数组中_id的方法  写好的html代码怎么运行出来_运行写好的html代码方法【教程】  一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  如何在CSS中使用浮动制作导航栏_float实现水平菜单  机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  React/Next.js中实现列表项的动态选择与移动  Win11怎么关闭快速启动_Win11彻底关机设置教程  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】  夸克AO3官网入口_AO3镜像网站2025推荐  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  React Router 嵌套组件中 URL 重定向问题的解决方案  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  《主播少女的秘密账号迷宫》首支宣传片  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  J*aScript设计模式实践_j*ascript代码优化  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  J*a最大堆Heapify方法修复:索引计算与边界条件深度解析  拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法  如何更改在 Excel 中打开超链接时的默认浏览器  CSS实现侧边栏导航项全宽圆角悬停背景效果  如何在J*a中实现统一对象行为接口_项目大型化时的接口规范化  C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果  163邮箱注册官网 免费申请163个人邮箱  抖音怎么赚钱_抖音创作者变现方法与途径指南  服务端验证_j*ascript输入检查  Golang如何测试channel通信行为_Golang channel通信测试与分析方法  qq游戏网页版直接玩_qq游戏免下载快速入口  Go语言HTML解析:利用Goquery精准获取指定元素内容  CSS子选择器:如何区分并样式化嵌套列表的子层级  汽水音乐在线版入口_汽水音乐网页播放手册  2026春节假期票务安排_2026春节放假购票指南  必由学在线入口 必由学网页版快速登录入口 

搜索