jquery的addclass和removeclass方法用于动态操作元素class属性:addclass支持传入单个类名、多个空格分隔类名或函数生成类名;removeclass可移除指定类、多个类或清空所有class;toggleclass可替代hasclass配合增删逻辑实现开关效果。

想让网页元素动态切换样式,比如点击按钮后高亮显示、收起菜单时移除展开状态类名,就必须掌握jQuery的addClass和removeClass方法。这两个方法直接操作HTML元素的class属性,是前端交互中最基础也最常用的DOM样式控制手段。
给单个或多个元素添加CSS类
方法一:直接传入类名字符串
调用addClass()并传入一个不含点号的类名,jQuery会自动将其添加到匹配元素的class属性中。
例如 $('p').addClass('highlight') 会给所有段落元素加上highlight类。
方法二:一次添加多个类名
传入空格分隔的字符串,如 $('div').addClass('active visible shadow'),jQuery会把这三个类全部追加进去,不会覆盖原有类名。
注意:如果某个类已存在,jQuery会自动跳过,不重复添加。
方法三:使用函数动态生成类名
addClass可接收一个函数作为参数,函数返回值将作为要添加的类名。函数内部this指向当前遍历的DOM元素,$(this)可获取jQuery对象。
例如 $('li').addClass(function(i) { return 'item-' + i; }),会给第一个li加item-0,第二个加item-1,依此类推。
精准移除指定CSS类
第一步:移除一个类
removeClass('error') 会从所有匹配元素中删除error类,其他类不受影响。
jQuery 1.12.4是jQuery 1.x系列的最后一个正式稳定版本,由jQuery团队于2016年发布。该版本主要面向需要兼容旧版浏览器环境的网站和Web应用,尤其适用于仍需支持Internet Explorer 6、Internet Explorer 7、Internet Explorer 8等老旧浏览器的项目。
第二步:移除多个类
传入空格分隔的类名,如 removeClass('disabled hidden loading'),只删除列出的类,保留未提及的类。
第三步:清空所有class属性
调用不带参数的 removeClass(),例如 $('#header').removeClass(),会彻底清空该元素的class属性值,【这一步不可逆,原class将完全丢失】。
判断是否含有某类并条件性操作
hasClass()本身不改变DOM,但常与addClass/removeClass配合实现开关逻辑。
例如:if ($('button').hasClass('toggled')) { $('button').removeClass('toggled'); } else { $('button').addClass('toggled'); }。
更简洁写法:$('button').toggleClass('toggled')——这是专为这类场景设计的替代方案,无需手动判断。
注意:hasClass()只检查当前元素自身class属性,不继承父级类名,也不检测CSS规则是否实际生效。










