JS获取兄弟节点
情景
点击li标签,会给每个li添加高亮显示
实现
如果用jq实现的话非常的方便,直接获取父节点,再获取子节点并移除所有类,对当前元素添加即可
思路主要就是:
- 移除所有元素的高亮对应的类名
- 给当前点击元素添加高亮的类
使用js时也是同样的思路,先通过parentNode
获取父亲节点,再获取其children
的所有节点,之后遍历即可
const imgs = document.querySelectorAll('main li')
// 给每个li添加点击事件
imgs.forEach((li, index) => {
li.addEventListener('click', (e) => {
// 移除兄弟节点的选择类
//获取到的parentNode.children不能使用forEach
Array.from(li.parentNode.children).forEach(lis => {
lis.classList.remove('imgSelect')
})
li.classList.toggle('imgSelect')
})
})
效果展示
此时就是点击哪个元素哪个元素就高亮
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?