第1章 第345节 dom element classList

推荐给朋友

HTML DOM classList 属性

实例

<div> 元素添加 class:

document.getElementById("myDIV").classList.add("mystyle");

尝试一下

定义和用法

classList 属性返回元素的类名,作为 DOMTokenList 对象。

该属性用于在元素中添加,移除及切换 CSS 类。

classList 属性是只读的,但你可以使用 add() 和 remove() 方法修改它。

浏览器支持

表格中的数字表示支持该属性的第一个浏览器的版本号。

属性 Chrome IE Firefox Safari Opera
classList 8.0 10.0 3.6 5.1 11.5

语法

element.classList

属性

属性 Description
length 返回类列表中类的数量 该属性是只读的

方法

方法 描述
add(class1, class2, ...) 在元素中添加一个或多个类名。
如果指定的类名已存在,则不会添加
contains(class) 返回布尔值,判断指定的类名是否存在。
可能值:
true - 元素包已经包含了该类名
false - 元素中不存在该类名
item(index) 返回元素中索引值对应的类名。索引值从 0 开始。
如果索引值在区间范围外则返回 null
remove(class1, class2, ...) 移除元素中一个或多个类名。
注意: 移除不存在的类名,不会报错。
toggle(class, true|false) 在元素中切换类名。
第一个参数为要在元素中移除的类名,并返回 false。
如果该类名不存在则会在元素中添加类名,并返回 true。
第二个是可选参数,是个布尔值用于设置元素是否强制添加或移除类,
不管该类名是否存在。例如:
移除一个 class: element.classList.toggle("classToRemove", false);
添加一个 class: element.classList.toggle("classToAdd", true);
注意: Internet Explorer 或 Opera 12 及其更早版本不支持第二个参数。

技术描述

返回值: 一个 DOMTokenList, 包含元素的类名列表

更多实例

实例

<div> 元素添加多个类:

document.getElementById("myDIV").classList.add("mystyle", "anotherClass", "thirdClass");

尝试一下

实例

<div> 元素移除一个类:

document.getElementById("myDIV").classList.remove("mystyle");

尝试一下

实例

<div> 元素移除多个类:

document.getElementById("myDIV").classList.remove("mystyle", "anotherClass", "thirdClass");

尝试一下

实例

<div> 元素切换类:

document.getElementById("myDIV").classList.toggle("newClassName");

尝试一下

实例

获取 <div> 元素的类名:

<div id="myDIV" class="mystyle anotherClass thirdClass">I am a DIV element</div>

var x = document.getElementById("myDIV").classList;

x 输出结果为:

mystyle anotherClass thirdClass

尝试一下

实例

查看 <div> 元素有多少个类名:

var x = document.getElementById("myDIV").classList.length;

x 输出结果为:

3

尝试一下

实例

获取 <div> 元素的第一个类名(索引为0):

var x = document.getElementById("myDIV").classList.item(0);

x 输出结果为:

mystyle

尝试一下

实例

查看元素是否存在 "mystyle" 类:

var x = document.getElementById("myDIV").classList.contains("mystyle");

x 输出结果为:

true

尝试一下

实例

查看元素是否存在 "mystyle" 类,如果存在则移除另外一个类名:

var x = document.getElementById("myDIV");

if (x.classList.contains("mystyle")) {
    x.classList.remove("anotherClass");
} else {
    alert("Could not find it.");
}

尝试一下

相关文章

CSS 教程: CSS 选择器

CSS 参考手册: CSS .class 选择器

HTML DOM 参考手册: HTML DOM className 属性

HTML DOM 参考手册: HTML DOM getElementsByClassName() 方法

HTML DOM 参考手册: HTML DOM Style 对象