.aadClass() 添加class
用法和前面的text方法一样,可以传字符串,可以传函数。值用空格隔开可以增加多个class
<div>给我安排class</div>
<div>给我安排class</div>
<script src="http://code.jquery.com/jquery-3.4.1.js"></script>
<script>
$('div').addClass('test');
</script>
.removeClass() 移出class值
<div class="test">给我移出class</div>
<div class="test">给我移出class</div>
<script src="http://code.jquery.com/jquery-3.4.1.js"></script>
<script>
$('div').removeClass('test');
</script>
他们在一起也可以链式调用。
链式调用: 取值的时候返回return结果,赋值返回this,表示可以继续调用。
做个小demo,点击添加背景颜色,再点击取消。
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>demo</title>
<style>
ul, li {
list-style: none;
}
.item {
width: 150px;
margin: 10px 0;
font-size: 20px;
color: #ffa400;
border: 1px solid #ccc;
border-radius: 10%;
}
.active {
color: #fff;
background: #a3d900;
}
</style>
</head>
<body>
<ul>
<li class="item">可乐 ¥3.0</li>
<li class="item">雪碧 ¥3.0</li>
<li class="item">营养快线 ¥4.0</li>
<li class="item">芬达 ¥3.0</li>
<li class="item">冰红茶 ¥3.0</li>
<li class="item">加多宝 4.0</li>
</ul>
<script src="http://code.jquery.com/jquery-3.4.1.js"></script>
<script>
$('.item').click(function() {
console.log(this); // 这个this指向点击谁的dom
if($(this).attr('class') == 'item active') { // 这里要写两个class, 不仅仅active, 还有item, 不然找不到
$(this).removeClass('active');
}else{
$(this).addClass('active'); // 这个this是原生dom,在jq中使用原生dom
// this.addClass('active'); // 这样不能写,原生dom没有addClass方法
}
})
</script>
</body>
</html>
优化1:
hasClass() 判断class是否有某个属性
有返回true,没有返回false
$('.item').click(function() {
if($(this).hasClass('active')) {
$(this).removeClass('active');
}else{
$(this).addClass('active');
}
})
功能还是一样。
优化2:
toggleClass() 判断class中是否有某个属性, 有就删除,没有就增加
$('.item').click(function() {
$(this).toggleClass('active')
})
省了多少代码...
功能一样。