jQuery CSS与样式操作是jQuery开发中的核心内容,jQuery提供了css()、addClass()、removeClass()、toggleClass()、hasClass()五种核心方法,便捷实现HTML元素的样式控制,jQuery样式操作方法简洁高效,大幅简化原生JavaScript操作CSS的繁琐流程,是前端开发中实现页面样式动态调整的关键手段。
css()方法
css()方法是jQuery样式操作中最基础的方法,可实现元素CSS样式属性的获取与设置,支持单个样式的单独操作与多个样式的批量操作,兼容所有主流浏览器,是jQuery CSS操作中使用频率最高的方法之一。
语法
// 获取指定CSS属性值
$(selector).css(propertyName);
// 设置单个CSS属性
$(selector).css(propertyName, value);
// 批量设置CSS属性
$(selector).css({propertyName1: value1, propertyName2: value2, ...});示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>jQuery css()方法示例</title>
<script src="jquery.min.js"></script>
<style>
.box { width: 200px; height: 200px; margin: 20px 0; }
</style>
</head>
<body>
<div class="box" style="background-color: #eee;"></div>
<script>
// 获取CSS属性值
var bgColor = $(".box").css("background-color");
console.log("当前背景色:" + bgColor); // 输出:当前背景色:rgb(238, 238, 238)
// 设置单个CSS属性
$(".box").css("background-color", "#f00");
// 批量设置CSS属性
$(".box").css({
"border": "2px solid #000",
"border-radius": "8px",
"box-shadow": "0 0 10px rgba(0,0,0,0.3)"
});
</script>
</body>
</html>addClass()方法
addClass()方法是jQuery样式操作中用于添加CSS类的核心方法,用于为匹配的元素添加一个或多个预设CSS类,添加的类不会覆盖元素已有的类,仅进行追加操作,是批量应用预设样式、实现样式复用的常用手段,也是jQuery样式操作的重要组成部分。
语法
// 添加单个CSS类
$(selector).addClass(className);
// 添加多个CSS类(类名之间用空格分隔)
$(selector).addClass(className1 className2 ...);示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>jQuery addClass()方法示例</title>
<script src="jquery.min.js"></script>
<style>
.box { width: 200px; height: 200px; margin: 20px 0; }
.bg-red { background-color: #f00; }
.border-black { border: 2px solid #000; }
.rounded { border-radius: 8px; }
</style>
</head>
<body>
<div class="box"></div>
<script>
// 添加单个CSS类
$(".box").addClass("bg-red");
// 添加多个CSS类
$(".box").addClass("border-black rounded");
</script>
</body>
</html>removeClass()方法
removeClass()方法与addClass()方法相辅相成,是jQuery样式操作中用于移除CSS类的核心方法,可移除匹配元素上的一个或多个CSS类,若不指定具体类名,则会移除元素上所有已有的CSS类,常与addClass()配合实现样式的动态切换,完善jQuery CSS操作的闭环。
语法
// 移除单个CSS类
$(selector).removeClass(className);
// 移除多个CSS类(类名之间用空格分隔)
$(selector).removeClass(className1 className2 ...);
// 移除所有CSS类
$(selector).removeClass();示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>jQuery removeClass()方法示例</title>
<script src="jquery.min.js"></script>
<style>
.box { width: 200px; height: 200px; margin: 20px 0; }
.bg-red { background-color: #f00; }
.border-black { border: 2px solid #000; }
.rounded { border-radius: 8px; }
</style>
</head>
<body>
<div class="box bg-red border-black rounded"></div>
<script>
// 移除单个CSS类
$(".box").removeClass("bg-red");
// 移除多个CSS类
$(".box").removeClass("border-black rounded");
// 移除所有CSS类(注释后可查看效果)
// $(".box").removeClass();
</script>
</body>
</html>toggleClass()方法
toggleClass()方法是jQuery样式操作中实现样式切换的便捷方法,核心功能是切换元素的CSS类,即元素已拥有该类则移除,未拥有则添加,同时支持传入第二个布尔参数,强制实现类的添加或移除,简化了addClass()与removeClass()的切换逻辑,提升jQuery样式操作的效率。
语法
// 切换单个CSS类
$(selector).toggleClass(className);
// 切换多个CSS类(类名之间用空格分隔)
$(selector).toggleClass(className1 className2 ...);
// 强制添加/移除类(true强制添加,false强制移除)
$(selector).toggleClass(className, switch);示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>jQuery toggleClass()方法示例</title>
<script src="jquery.min.js"></script>
<style>
.box { width: 200px; height: 200px; margin: 20px 0; cursor: pointer; }
.bg-red { background-color: #f00; }
.border-black { border: 2px solid #000; }
</style>
</head>
<body>
<div class="box">点击切换样式</div>
<script>
// 点击切换单个类
$(".box").click(function() {
$(this).toggleClass("bg-red");
});
// 强制添加类(3秒后执行)
setTimeout(function() {
$(".box").toggleClass("border-black", true);
}, 3000);
// 强制移除类(6秒后执行)
setTimeout(function() {
$(".box").toggleClass("border-black", false);
}, 6000);
</script>
</body>
</html>hasClass()方法
hasClass()方法是jQuery样式操作中用于状态判断的核心方法,用于判断匹配的元素是否拥有指定的CSS类,返回值为布尔值(true表示拥有,false表示没有),常作为样式切换、条件执行的判断依据,是完善jQuery CSS操作逻辑的重要方法。
语法
$(selector).hasClass(className);示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>jQuery hasClass()方法示例</title>
<script src="jquery.min.js"></script>
<style>
.box { width: 200px; height: 200px; margin: 20px 0; }
.bg-red { background-color: #f00; }
</style>
</head>
<body>
<div class="box bg-red"></div>
<script>
// 判断是否拥有指定类
var hasBgRed = $(".box").hasClass("bg-red");
var hasBorder = $(".box").hasClass("border-black");
console.log("是否有bg-red类:" + hasBgRed); // 输出:是否有bg-red类:true
console.log("是否有border-black类:" + hasBorder); // 输出:是否有border-black类:false
// 结合条件判断使用
if (hasBgRed) {
$(".box").addClass("border-black");
}
</script>
</body>
</html>jQuery版本中CSS与样式操作方法的变化
以下表格汇总了css()、addClass()、removeClass()、toggleClass()、hasClass()五种jQuery样式操作方法在不同jQuery版本中的核心变化,便于开发者根据项目所使用的jQuery版本调整代码,确保jQuery CSS操作的兼容性。
| 方法名称 | 版本变化说明 |
|---|---|
| css() | jQuery 1.0 版本引入,支持基础的样式获取与设置;jQuery 1.4 版本新增支持批量设置样式(传入对象参数);jQuery 1.9 版本修复了获取复合样式(如font、background)时的兼容性问题,优化了jQuery CSS操作的稳定性。 |
| addClass() | jQuery 1.0 版本引入,支持添加单个类;jQuery 1.2 版本新增支持添加多个类(类名用空格分隔);jQuery 1.4 版本优化了类名去重逻辑,避免重复添加同一类,提升jQuery样式操作的规范性。 |
| removeClass() | jQuery 1.0 版本引入,支持移除单个类;jQuery 1.2 版本新增支持移除多个类;jQuery 1.4 版本新增不传入类名时移除所有类的功能,完善了jQuery样式操作的完整性。 |
| toggleClass() | jQuery 1.0 版本引入,支持单个类的切换;jQuery 1.2 版本新增支持多个类的切换;jQuery 1.3 版本新增第二个布尔参数,用于强制添加或移除类,增强了jQuery样式操作的灵活性。 |
| hasClass() | jQuery 1.2 版本引入,替代了早期的is(“.className”)写法;jQuery 1.4 版本优化了判断效率,支持在多个匹配元素中判断是否有任意一个元素拥有指定类,提升jQuery CSS操作的性能。 |
css()、addClass()、removeClass()、toggleClass()、hasClass()五种方法共同构成了jQuery样式操作的核心体系,涵盖了样式的获取、设置、添加、移除、切换与判断,熟练掌握这些jQuery CSS操作方法,能有效提升前端页面样式开发的效率与规范性。
