设置 class 属性与获取 class 属性方式类似,都是通过 Element 对象提供的 className 属性和 classList 属性实现。
## Element 对象的 className 属性
Element 对象提供的 className 属性既可以实现获取,也可以实现设置。其设置的语法结构如下:
```javascript
elementNodeReference.className = cName;
```
上述语法结构中,作为值的 cName 是一个字符串变量。表示当前元素的class属性的值,可以是由空格分隔的多个class属性值。
我们可以通过以下示例代码,学习如何通过 className 属性设置:
```javascript
var btn = document.getElementById('btn');
var className = btn.className;
className += ' animate';
btn.className = className;
```
## Element 对象的 classList 属性
Element 对象提供的 classList 属性与 className 属性类似,既可以实现获取,也可以实现设置。
但 classList 属性自身是只读属性,换句话讲,我们并不能通过 classList 属性进行设置。而是通过以下方法实现:
| 方法名称 | 描述 |
| --- | --- |
| add() | 添加指定的类值。如果这些类已经存在于元素的属性中,那么它们将被忽略。|
| remove() | 删除指定的类值。|
| item() | 按集合中的索引返回类值。|
| toggle() | 切换指定的类值。 |
| contains() | 检查元素的类属性中是否存在指定的类值。|
我们可以通过以下示例代码,学习上述方法的使用:
```javascript
var btn = document.getElementById('btn');
var classList = btn.classList;
// 添加 .animate 样式
classList.add('animate');
// 删除 .animate 样式
classList.remove('animate');
// 如果 .animate 存在,则删除;如果 .animate 不存在,则添加
classList.toggle('animate');
// 判断是否存在 .animate 样式
console.log(classList.contains('animate'));
```
- 关于
- 第一章 DOM 是什么
- 第一节 DOM 介绍
- 第二节 DOM 树结构
- 第二章 Document 对象
- 第一节 Document 对象介绍
- 第二节 定位页面元素
- 第三节 创建页面元素
- 第三章 Node 对象
- 第一节 Node 对象介绍
- 第二节 判断节点类型
- 第三节 遍历节点
- 第四节 插入节点
- 第五节 删除节点
- 第六节 替换节点
- 第七节 复制节点
- 第八节 textContent 属性
- 第四章 Element 对象
- 第一节 Element 对象介绍
- 第二节 DOM 元素树
- 第三节 定位页面元素
- 第四节 遍历元素
- 第五节 属性操作
- 第六节 innerHTML 属性
- 第五章 样式操作
- 第一节 获取内联样式
- 第二节 获取外联样式表
- 第三节 获取 class 属性
- 第四节 获取当前有效样式
- 第五节 设置内联样式
- 第六节 设置 class 属性
- 第七节 Element 对象的样式属性
- 第六章 事件
- 第一节 什么是事件
- 第二节 注册事件
- 第三节 移除注册事件
- 第四节 Event 事件对象
- 第五节 获取目标元素
- 第六节 阻止默认行为
- 第七节 获取鼠标坐标
- 第八节 事件流
- 第九节 事件委托
- 第七章 表单操作
- 第一节 获取表单
- 第二节 表单操作
- 第三节 表单验证
- 第四节 表单提交
- 第八章 BOM
- 第一节 BOM 是什么
- 第二节 Window 对象
- 第三节 Navigator 对象
- 第四节 History 对象
- 第五节 Location 对象
- 第六节 定时器