当前位置: 首页 > article >正文

jQuery - 获取并设置 CSS 类

jQuery - 获取并设置 CSS 类 学习笔记CSS 类Class是控制元素样式的关键。jQuery 提供了一组简洁的方法来动态地添加、移除、切换和检查 CSS 类这是实现交互效果如高亮、显示/隐藏、状态切换最常用的手段。一、核心方法1..addClass()- 添加类向匹配的元素添加一个或多个 CSS 类。// 语法$(selector).addClass(className);$(selector).addClass(className1,className2,...);// 多个类用空格分隔$(selector).addClass(function(index,oldClass));// 示例// 添加单个类$(#box).addClass(active);// 添加多个类$(#box).addClass(highlight red-border);// 使用函数动态添加根据索引或旧类名$(li).addClass(function(i,oldClass){returnitem-(i1);// 添加 item-1, item-2...});// 链式调用$(#btn).addClass(btn-primary).addClass(disabled).prop(disabled,true);特点✅ 不会覆盖元素原有的类而是追加。✅ 如果类已存在不会重复添加。2..removeClass()- 移除类从匹配的元素移除一个或多个 CSS 类。// 语法$(selector).removeClass(className);$(selector).removeClass();// 移除所有类$(selector).removeClass(function(index,oldClass));// 示例// 移除单个类$(#box).removeClass(active);// 移除多个类$(#box).removeClass(highlight red-border);// 移除所有类慎用$(#box).removeClass();// 元素变成 div idbox/div// 使用函数动态移除$(li).removeClass(function(i,oldClass){// 移除所有以 item- 开头的类varmatcholdClass.match(/item-\d/);returnmatch?match[0]:;});特点✅ 如果类不存在不会报错静默忽略。✅ 可以移除部分类保留其他类。3..toggleClass()- 切换类如果元素有该类则移除如果没有则添加。常用于实现“开关”效果。// 语法$(selector).toggleClass(className);$(selector).toggleClass(className,switch);// switch 为 true 则添加false 则移除$(selector).toggleClass(function(index,oldClass));// 示例// 点击切换$(#btn).click(function(){$(this).toggleClass(active);});// 强制添加如果 switch 为 true$(#box).toggleClass(highlight,true);// 强制移除如果 switch 为 false$(#box).toggleClass(highlight,false);// 切换多个类$(#box).toggleClass(highlight red-border);特点✅ 最常用于交互反馈如选中、展开/收起、亮色/暗色模式。✅ 代码简洁无需判断当前状态。4..hasClass()- 检查类检查匹配的元素是否包含指定的 CSS 类。返回true或false。// 语法$(selector).hasClass(className);// 示例if($(#box).hasClass(active)){console.log(元素处于激活状态);}else{console.log(元素未激活);}// 在事件处理中$(li).click(function(){if($(this).hasClass(selected)){$(this).removeClass(selected);}else{// 先移除其他所有 li 的 selected$(li).removeClass(selected);$(this).addClass(selected);}});特点✅ 返回布尔值常用于条件判断。✅ 只要有一个匹配元素包含该类就返回true。二、方法对比总结方法作用返回值典型场景.addClass()添加类jQuery 对象激活状态、高亮.removeClass()移除类jQuery 对象取消激活、清除错误.toggleClass()切换类jQuery 对象开关、折叠/展开.hasClass()检查类true/false条件判断、逻辑控制三、实际应用案例1. 导航菜单高亮// 点击菜单项高亮当前项$(.nav-item).click(function(){// 移除所有项的 active 类$(.nav-item).removeClass(active);// 给当前点击项添加 active 类$(this).addClass(active);});// 或者使用 toggleClass (如果是单选需配合移除其他)// 更简洁的写法利用 hasClass 判断$(.nav-item).click(function(){if($(this).hasClass(active)){$(this).removeClass(active);}else{$(.nav-item).removeClass(active);$(this).addClass(active);}});2. 表单验证错误提示// 验证输入functionvalidateInput($input){varval$input.val().trim();if(val){// 添加错误类$input.addClass(error);// 显示错误消息$input.next(.error-msg).show();returnfalse;}else{// 移除错误类$input.removeClass(error);// 隐藏错误消息$input.next(.error-msg).hide();returntrue;}}// 实时验证$(#username).on(blur,function(){validateInput($(this));});3. 手风琴效果 (Accordion)// 点击标题切换内容显示$(.accordion-header).click(function(){// 切换当前项的 active 类$(this).toggleClass(active);// 切换对应内容的显示/隐藏$(this).next(.accordion-content).slideToggle();// 可选关闭其他所有项互斥$(.accordion-header).not(this).removeClass(active).next(.accordion-content).slideUp();});4. 表格行斑马纹与悬停// 初始化斑马纹虽然 CSS :nth-child 更好但 jQuery 也可实现$(tbody tr).addClass(function(i){returni%20?even:odd;});// 悬停效果$(tbody tr).hover(function(){$(this).addClass(hover);},function(){$(this).removeClass(hover);});// 或者使用 CSS :hoverjQuery 仅用于选中状态$(tbody tr).click(function(){// 移除所有行的 selected$(tbody tr).removeClass(selected);// 添加当前行 selected$(this).addClass(selected);});5. 主题切换 (亮色/暗色)// 切换主题$(#themeToggle).click(function(){$(body).toggleClass(dark-theme);// 切换图标$(this).toggleClass(sun-icon moon-icon);// 保存用户偏好varisDark$(body).hasClass(dark-theme);localStorage.setItem(theme,isDark?dark:light);});// 页面加载时恢复主题$(function(){varsavedThemelocalStorage.getItem(theme);if(savedThemedark){$(body).addClass(dark-theme);$(#themeToggle).addClass(moon-icon).removeClass(sun-icon);}});四、注意事项1. 类名格式类名不需要带点号.。✅$(#box).addClass(active)❌$(#box).addClass(.active)2. 多个类名多个类名之间用空格分隔作为单个字符串传递。✅$(#box).addClass(class1 class2 class3)❌$(#box).addClass(class1, class2)(这是错误的第二个参数会被忽略或报错)3. 性能优化频繁操作类名如滚动事件中可能影响性能。优先使用 CSS:hover,:active等伪类仅在需要 JS 逻辑时使用 jQuery 类操作。批量操作先构建好类名字符串一次性添加/移除比多次调用更高效。4. 与.css()的区别优先使用类.addClass()等方法是推荐的做法因为样式定义在 CSS 文件中易于维护和复用。避免直接操作样式除非动态计算值如根据滚动位置改变透明度否则不要频繁使用.css()设置样式。✅ 推荐$(#box).addClass(highlight)(CSS 中定义.highlight { color: red; })❌ 不推荐$(#box).css(color, red)(样式散落在 JS 中难维护)5. 链式调用所有类操作方法都支持链式调用方便连续操作。$(#btn).addClass(btn-primary).removeClass(btn-default).toggleClass(disabled).fadeIn();五、总结jQuery 的类操作方法简洁高效添加:.addClass(class)移除:.removeClass(class)切换:.toggleClass(class)(最常用)检查:.hasClass(class)最佳实践将样式定义在 CSS 文件中JS 只负责切换类名。使用.toggleClass()实现开关效果。使用.hasClass()进行状态判断。避免直接操作内联样式.css()除非必须动态计算。掌握这些方法可以轻松实现丰富的交互效果和动态样式变化

相关文章:

jQuery - 获取并设置 CSS 类

jQuery - 获取并设置 CSS 类 学习笔记 CSS 类(Class)是控制元素样式的关键。jQuery 提供了一组简洁的方法来动态地添加、移除、切换和检查 CSS 类,这是实现交互效果(如高亮、显示/隐藏、状态切换)最常用的手段。 一、核…...

探索视觉小说新境界:TouchGal一站式Galgame社区深度解析

探索视觉小说新境界:TouchGal一站式Galgame社区深度解析 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGal是一个专…...

golang如何实现群聊功能_golang群聊功能实现策略

使用 gorilla/websocket 实现群聊需维护连接 map 并加锁广播,排除自身连接避免重复消息;启用心跳与读写超时机制处理断连;消息持久化推荐 Redis Stream 分层存储,配合 seq 去重保障时序一致性。用 net/http gorilla/websocket 建…...

Vue3 开发避坑指南:从 `no-mutating-props` 报错看单向数据流的正确实践

1. 为什么会出现 no-mutating-props 报错? 第一次在 Vue3 项目中看到这个报错时,我也是一头雾水。明明代码运行得好好的,突然就蹦出个 Unexpected mutation of "xxx" prop 的错误提示。后来仔细研究才发现,这其实是 Vue…...

别再只用ollama run了!手把手教你调用Ollama的Embeddings API玩转bge-m3等向量模型

解锁Ollama Embeddings API:从bge-m3错误到向量化实战指南 当你第一次在终端输入ollama run bge-m3:567m却看到"does not support generate"的错误提示时,可能感到困惑——明明已经成功拉取模型,为什么无法使用?这个看似…...

【仅限本周开放】:AGI蛋白质折叠预测工程化部署指南(Docker+Kubernetes+GPU量化推理全流程,含NVIDIA Triton部署模板)

第一章:AGI的蛋白质折叠预测能力 2026奇点智能技术大会(https://ml-summit.org) 通用人工智能(AGI)系统在蛋白质结构建模领域已展现出超越传统专用AI模型的能力,其核心突破在于将多尺度物理约束、进化序列共变信息与三维几何生成…...

SDR求解后如何‘捞回’有效解?深入对比EVD与高斯随机化两种恢复策略的优劣与MATLAB实现

SDR求解后如何‘捞回’有效解?深入对比EVD与高斯随机化两种恢复策略的优劣与MATLAB实现 在无线通信、信号处理和优化领域,半正定松弛(SDR)技术已成为解决非凸二次约束二次规划(QCQP)问题的利器。然而&…...

AGI驱动的灾害预警系统已上线7省:3大实时决策引擎、5层数据验证链与1秒级灾情推演模型全披露

第一章:SITS2026专家:AGI与灾害预警 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026大会上,来自全球气候建模中心、神经符号AI实验室及联合国减灾署(UNDRR)的跨学科专家组首次公开演示了基于自主通用智能体…...

硬件工程师面试被问电容ESR?别慌,这份MLCC和电解电容的选型避坑指南请收好

硬件工程师面试被问电容ESR?别慌,这份MLCC和电解电容的选型避坑指南请收好 面试官突然抛出"电容ESR对电源设计的影响"这类问题时,很多工程师的第一反应是回忆教科书上的定义。但真正的高手会立刻联想到去年某个电源模块异常发热的案…...

G-Helper终极指南:3分钟解决华硕笔记本屏幕发白问题

G-Helper终极指南:3分钟解决华硕笔记本屏幕发白问题 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar…...

运维监控体系的搭建与智能告警系统的实现

运维监控体系的搭建与智能告警系统的实现 在数字化转型的浪潮下,企业IT系统的复杂性和规模不断增长,运维团队面临着前所未有的挑战。如何高效监控系统运行状态,并在故障发生时快速响应,成为保障业务连续性的关键。运维监控体系的…...

第14篇:循环神经网络(RNN)揭秘——处理序列数据的时序大师(原理解析)

文章目录现象引入:为什么全连接网络“看不懂”句子?提出问题:RNN如何实现对序列的“记忆”?原理剖析:RNN的循环结构与核心计算RNN的基本结构前向传播公式处理不同类型任务源码印证:用PyTorch实现一个简单RN…...

Windows 10专业版用户必看:用组策略彻底关掉Defender的保姆级教程(附防篡改设置)

Windows 10专业版深度优化:组策略禁用Defender全流程与安全实践 Windows 10专业版用户经常面临一个两难选择:系统自带的Microsoft Defender提供了基础安全防护,但在某些专业场景下反而成为工作流的绊脚石。当你在进行软件开发、虚拟机部署或运…...

保姆级教程:在ARM服务器上配置GICv3虚拟中断,手把手教你玩转List寄存器

保姆级教程:在ARM服务器上配置GICv3虚拟中断,手把手教你玩转List寄存器 当你在ARMv8-A平台上进行虚拟化开发时,中断处理往往是系统性能的关键瓶颈。传统的中断虚拟化方案需要频繁陷入hypervisor,而GICv3架构通过硬件辅助的虚拟中断…...

家里装修别乱接!电工师傅教你一眼分清零线火线,安全又省钱

家庭电路安全指南:零线火线快速识别与正确接线技巧 装修新房或改造旧电路时,最让人头疼的莫过于面对一堆颜色各异的电线不知如何下手。不少朋友抱着"反正都是电,接上能亮就行"的心态随意接线,轻则导致电器损坏&#xff…...

从CLOSING到CLOSED:解码WebSocket连接状态异常与稳健重连策略

1. WebSocket连接状态的生命周期解析 WebSocket作为一种全双工通信协议,在现代Web应用中扮演着重要角色。但很多开发者都遇到过那个令人头疼的报错:"WebSocket is already in CLOSING or CLOSED state"。要理解这个错误,我们得先搞…...

50元搞定远程开机:米家智能插座+BIOS设置保姆级教程(附休眠模式小技巧)

50元实现远程开机:智能插座BIOS设置全攻略 远程办公和数字游民生活方式的兴起,让远程控制电脑成为刚需。但传统方案要么价格昂贵,要么设置复杂。今天分享一个成本仅50元、稳定性极高的解决方案——智能插座配合BIOS设置,让你随时随…...

86374

845673...

保姆级教程:用Sentinel-1 SAR和Landsat 9光学影像,手把手教你识别海洋“暗流”——内波

从数据到发现:Sentinel-1与Landsat 9协同解译海洋内波实战指南 当南海的碧波下暗流涌动,卫星的"天眼"正记录着这些肉眼不可见的海洋脉动。内波——这种水下百米深处的能量传递者,通过改变海面微结构,在遥感影像上留下独…...

解锁学术新秘籍:书匠策AI,期刊论文的智能导航员

在学术的浩瀚海洋中,每一位研究者都像是勇敢的航海家,驾驶着知识的航船,探索未知的领域。而期刊论文,作为学术交流的重要载体,不仅是研究成果的展示窗口,更是推动学科进步的强劲动力。然而,撰写…...

书匠策AI:期刊论文的“智能魔法棒”,解锁学术新境界

在学术的浩瀚宇宙中,每一位研究者都是探索未知的星辰,而期刊论文则是他们闪耀光芒的舞台。然而,撰写一篇高质量的期刊论文,往往需要经历选题迷茫、文献浩瀚、框架构建、内容雕琢等多重考验。幸运的是,随着人工智能技术…...

解锁学术新境界:书匠策AI——期刊论文创作的智慧灯塔

在学术探索的浩瀚海洋中,每一位研究者都如同勇敢的航海家,怀揣着对知识的渴望,驾驭着思维的航船,不断追寻着真理的彼岸。而在这漫长的旅途中,一篇高质量的期刊论文,无疑是那指引方向的灯塔,照亮…...

从STC8G1K08A到SG90舵机:一个宿舍断电关灯器的硬件选型与避坑全记录

STC8G1K08A与SG90舵机的实战融合:智能断电关灯器的硬件设计精要 深夜被突如其来的灯光惊醒,这种体验对于宿舍生活的学生来说再熟悉不过。传统机械开关在断电后无法自动复位的问题,催生了一个有趣的硬件项目——基于STC8G1K08A单片机和SG90舵机…...

别再只会插上就用了!手把手教你用V4L2在Ubuntu上精细调校USB摄像头(亮度/曝光/白平衡)

从参数盲调到精准控制:V4L2在Ubuntu下的USB摄像头画质调优实战 当你用USB摄像头进行视频会议时,是否遇到过画面忽明忽暗?当你在OpenCV项目中进行图像识别时,是否被偏色问题困扰?大多数Linux用户止步于"摄像头能工…...

SR锁存器不定态:从理论到实践的深度剖析

1. SR锁存器基础原理:从门电路到记忆单元 我第一次接触SR锁存器是在大学数字电路实验课上,当时看着两个简单的或非门就能实现"记忆"功能,感觉非常神奇。SR锁存器(Set-Reset Latch)确实是数字电路中最基础的记…...

G-Helper实战指南:华硕笔记本轻量级性能控制完整解决方案

G-Helper实战指南:华硕笔记本轻量级性能控制完整解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix,…...

5大相机品牌+40个真实场景:构建图像去噪算法的黄金标准数据集

5大相机品牌40个真实场景:构建图像去噪算法的黄金标准数据集 【免费下载链接】PolyU-Real-World-Noisy-Images-Dataset Real-world Noisy Image Denoising: A New Benchmark 项目地址: https://gitcode.com/gh_mirrors/po/PolyU-Real-World-Noisy-Images-Dataset …...

OpenSfM实战调优:如何通过修改config.yaml提升三维重建精度与速度(以Model House数据集为例)

OpenSfM实战调优:通过config.yaml精准控制三维重建质量与效率 当你的OpenSfM项目已经能够跑通基础流程,却在重建质量或运行速度上遇到瓶颈时,真正的挑战才刚刚开始。Model House这类包含丰富纹理但结构复杂的数据集,往往能暴露出参…...

如何快速部署EspoCRM:免费开源CRM系统的完整安装指南

如何快速部署EspoCRM:免费开源CRM系统的完整安装指南 【免费下载链接】espocrm EspoCRM – Open Source CRM Application 项目地址: https://gitcode.com/GitHub_Trending/es/espocrm EspoCRM是一款功能强大的免费开源客户关系管理系统,专为帮助企…...

从‘有状态’到实战:用iptables为你的Ubuntu服务器打造企业级安全策略

从‘有状态’到实战:用iptables为你的Ubuntu服务器打造企业级安全策略 在当今数字化时代,服务器安全已成为企业IT基础设施的重中之重。想象一下,你的Ubuntu服务器上运行着关键的Web应用和数据库服务,每天处理着成千上万的请求——…...