新闻中心
使用 J*aScript 根据 ID 匹配不同父元素中的元素(悬停时)

本文将介绍如何使用 j*ascript 在鼠标悬停时,根据 id 匹配不同父元素中的元素,并动态添加或移除 `active` 类。通过遍历第一个父元素中的 `li` 元素,并监听 `mouseover` 和 `mouseout` 事件,我们可以获取当前悬停元素的 id,然后在第二个父元素中找到具有相同 id 的元素,并对其进行样式操作。
J*aScript 实现跨父元素 ID 匹配与样式控制
在 Web 开发中,有时我们需要实现一种交互效果:当鼠标悬停在一个元素上时,另一个元素(可能位于不同的父元素下)也随之改变样式。如果这些元素具有相同的 ID,我们可以利用 J*aScript 来实现这种效果。
实现原理
该方案的核心思想是:
- 选取第一个父元素(例如,class 为 first 的 div)下的所有 li 元素。
- 为每个 li 元素添加 mouseover 和 mouseout 事件监听器。
- 当 mouseover 事件触发时,获取当前 li 元素的 ID。
- 使用该 ID 作为选择器,在整个文档中查找第二个具有相同 ID 的元素(例如,class 为 second 的 div 下的 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");
});
});代码解释
- document.querySelectorAll(".first ul li"): 使用 querySelectorAll 方法选取所有位于 class 为 first 的元素下的 ul 元素内的 li 元素。
- .forEach(li => { ... }): 遍历选取的每个 li 元素,并为每个元素执行回调函数。
- li.addEventListener("mouseover", e => { ... }): 为每个 li 元素添加 mouseover 事件监听器。当鼠标悬停在该元素上时,触发回调函数。
- e.target.id: 在 mouseover 事件中,e.target 指向触发事件的元素(即当前悬停的 li 元素),e.target.id 获取该元素的 ID。
- document.querySelectorAll(\#${e.target.id}`)[1]: 使用querySelectorAll选取 ID 与当前悬停元素 ID 相同的元素。由于第一个元素已经被选取,所以使用索引[1]` 来获取第二个元素。
- .classList.add("active"): 为选取的第二个元素添加 active 类。
- li.addEventListener("mouseout", e => { ... }): 为每个 li 元素添加 mouseout 事件监听器。当鼠标移出该元素时,触发回调函数。
- .classList.remove("active"): 移除选取的第二个元素的 active 类。
HTML 结构
察言观数AskTable
企业级AI数据表格智能体平台
78
查看详情
为了使上述 J*aScript 代码正常工作,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;
}注意事项
- 确保两个父元素下的 li 元素具有相同的 ID,这是实现匹配的关键。
- 该方法依赖于元素的 ID 属性,如果 ID 不存在或不唯一,可能会导致错误。
- 如果需要匹配的元素不是 li 元素,需要相应地修改 J*aScript 代码中的选择器。
- 此代码假设页面上只有两组具有相同 ID 的元素。如果存在更多组,则需要修改代码以确保选择正确的元素。
总结
通过 J*aScript 结合 CSS,我们可以轻松实现跨父元素 ID 匹配与样式控制。这种方法在需要实现复杂的交互效果时非常有用,例如,当鼠标悬停在一个导航菜单项上时,高亮显示内容区域中对应的部分。
以上就是使用 J*aScript 根据 ID 匹配不同父元素中的元素(悬停时)的详细内容,更多请关注其它相关文章!
# 上时
# 苏州网站建设网站推广
# 如何seo零金手指六六二一
# 盘锦网站推广巍星hfqjwl下拉
# 个人推广网站app
# 网站搜索引擎优化措施
# 轻食推广营销策划方案
# 网站排名优化价格怎么做
# 安康建设公司网站
# 盛大网站建设美丽
# 滁州网站建设详细方案
# 单选框
# 遍历
# 移除
# css
# 选择器
# 当鼠标
# 第一个
# 表单
# 回调
# 第二个
# ssl
# 回调函数
# seo
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
大象笔记网页版入口 印象笔记网页版登录入口
在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全
CSS响应式网页如何实现主次模块比例自适应_flex-grow与flex-shrink调整
新三国志曹操传110级星符试炼夏侯渊极难攻略
漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接
Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】
Golang如何安装Swagger工具_GoSwagger文档生成环境
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
深入理解Promise链:如何在catch后中断then的执行
蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】
126邮箱手机版登录官网2026_126手机邮箱免费入口最新
抖音网页版企业服务中心登录入口_抖音网页版企业登录平台
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
顺丰快件物流信息 官方网站查询入口
漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
Angular响应式表单:实现提交后表单及按钮的禁用与只读化
C++指针和引用有什么区别_C++内存管理核心概念深度解析
Typer应用中灵活处理命令行参数的令牌化与解析
sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程
蛙漫画网页版全站入口 蛙漫热门作品免费浏览
React Hooks最佳实践:动态组件状态管理的组件化方案
优化 Jest 模拟:强制未实现函数抛出错误以提升测试效率
Pyrogram与g4f集成:异步编程实践与常见错误解决
拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达
Bing引擎入口最新2025 Bing搜索免费官方登录
Lar*el头像管理:图片缩放与旧文件删除的最佳实践
QQ邮箱登录官网首页 腾讯QQ邮箱网页入口
一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】
抖音创作助手登录入口_抖音创作辅助工具官网直达
实现分段式页面滚动导航:CSS与J*aScript教程
妖精动漫免费平台 妖精动漫官网资源观看网址
如何在网页中实现特定地点的随机图片展示
J*aScript中管理异步API调用:确保操作顺序与数据一致性
C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件
Win11输入法不见了怎么办_Windows11恢复语言栏显示方法
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
Centos/Linux 系统下安装 composer 的完整步骤
Lar*el DB::listen 事件中的查询执行时间单位解析
将HTML动态表格多行数据保存到Google Sheet的教程
mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤
J*a递归快速排序中静态变量导致数据累积问题的解决方案
解决macOS上安装pyhdf时‘hdf.h’文件缺失的编译错误
支付宝如何管理隐私设置_支付宝隐私保护的配置技巧
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
2026春节假期时间安排 2026春节假日查询
Spyder启动失败:字体文件权限拒绝错误解决方案
2026年CSGO开箱网站推荐 CSGO开箱平台精选
一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法


2025-10-17
浏览次数:次
返回列表
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");
});
});