設置 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 對象
- 第六節 定時器