使用 classList API
一、classList API 是什么
- 属于 DOM API,HTML5 引入,用来操作 HTML 标签的
class属性值。 classList属性是一个只读的类数组对象,“实时”地代表了元素的类名集合。classList对象上定义了 6 个实用的操作class属性值的方法。
二、classList 对象上的属性和方法
属性:
length:返回当前类列表中类的个数。
方法:
add(class1, class2, ...):添加类remove(class1, class2, ...):删除类toggle(class[, force]):当前类列表中如果不存在指定的类,则执行添加类操作,返回true;否则执行删除类操作,返回false。force 是一个函数,决定toggle方法最终执行何种操作——当函数返回true时,执行添加类操作,返回false,执行删除类操作。contains(class):是否包含指定类。item(index):返回当前类列表中指定位置的类名。toString():返回当前类列表的字符串表示。
接下来会举些使用上述方法和属性的例子(这里有一个 线上的例子 ),这些例子都会用到下面这段 HTML 代码。
<span id="element" class="description"></span>
2.1 add() 方法
添加一个类名:
document.getElementById('element').classList.add('red');
// class="description red"
添加多个类名:
document.getElementById('element').classList.add('red', 'bold');
// class="description red bold"
{提示} 如果提供的类名已存在,就不会重复添加。
2.2 remove() 方法
删除一个类名:
document.getElementById('element').classList.remove('description');
// class=""
删除多个类名:
document.getElementById('element').classList.remove('description', 'red');
// class=""
2.3 toggle() 方法
document.getElementById('element').classList.toggle('description');
// class=""
document.getElementById('element').classList.toggle('description');
// class="description"
2.4 item() 方法
document.getElementById('element').classList.item(0);
// 返回 "description"
document.getElementById('element').classList.item(2);
// 返回 null
2.5 contains 方法
if (document.getElementById('element').classList.contains('description')) {
// 一些逻辑代码……
} else {
// 不同的逻辑代码……
}
2.6 toString() 方法
console.log(document.getElementById('element').classList.toString());
// 打印 "description"
document.getElementById('element').classList.add('red', 'bold');
console.log(document.getElementById('element').classList.toString());
// 打印 "description red bold"
2.7 length 属性
console.log(document.getElementById('element').classList.length);
// 打印 1
浏览器兼容性
IE10+ 和其他所有浏览器。其中 IE10+(包括土鳖 UC)属于部分支持,不支持的内容包括:
- 不支持 SVG 或 MathML 元素。
- 不支持
toggle方法的第二个参数。 - 不支持多参数形式的
add()和remove()方法。
不过都是小事,可以使用 polyfill 解决。
参考链接
https://www.sitepoint.com/exploring-classlist-api/
(完)
使用 classList API的更多相关文章
- [Javascript] Manipulate the DOM with the classList API
Learn how to add, remove and test for CSS classes using the classList API. It's more powerful than u ...
- HTML5 classList API接口
原文地址:HTML5 classList API 原文日期: 2010年07月13日 翻译日期: 2013年08月23日 当我陷入JavaScrip和JavaScript类库框架之中时,我总是有种希望 ...
- 温习classList api
有道题是一个removeClass的功能,代码里是正则分隔了传入的name,根据name的个数,循环移除掉,让寻找bug..看了了这几行代码,首先想到的是我会如何去优化. 如果看代码一两分钟就能找到公 ...
- HTML5 classList API
Having thrust myself into the world of JavaScript and JavaScript Libraries, I've often wondered: Whe ...
- [转]HTML5 classList API
Having thrust myself into the world of JavaScript and JavaScript Libraries, I've often wondered: Whe ...
- HTML5的classList API优化对样式名className的操作
//添加一个class elem.classList.add(classname); //删除一个class elem.classList.remove(classname); //判断一个class ...
- element.dataset API
不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进行增.删改的接口,完全可以替代jQuery里的那些CSS类操作方法.而另外一个非常有用 ...
- H5新增属性classList
H5新增属性classList h5中新增了一个classList,原生js可以通过它来判断获取dom节点有无某个class. classList是html元素对象的成员,它的使用非常简单,比如 co ...
- h5的classList对象
H5新增属性classList h5中新增了一个classList,原生js可以通过它来判断获取dom节点有无某个class. classList是html元素对象的成员,它的使用非常简单,比如 co ...
随机推荐
- Balanced Lineup(线段树的简单了解)
个人心得:线段树就是将一段序列拆分为一个个单独的节点,不过每俩个节点又可以联系在一起,所以就能很好的结合,比如这一题, 每次插入的时候都将这一段区间的最大最小值更新,就能大大减少时间. 这个线段树建立 ...
- 控制input框输入非数字
<input type="text" onkeyup="value=value.replace(/[^\d.]/g,'')">
- nodejs 接口跨域
//设置跨域访问 //设置跨域访问 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Orig ...
- 【转】深入剖析Java中的装箱和拆箱
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱 ...
- c++11之二: 类成员变量初始化
在C++11中, 1.允许非静态成员变量的初始化有多种形式:初始化列表; 使用等号=或花括号{}进行就地的初始化. 可以为同一成员变量既声明就地的列表初始化,又在初始化列表中进行初始化,只不过初始化列 ...
- Angular5学习笔记 - 路由管理(五)
一.添加路由管理引用 打开src/app/app.module.ts文件 import {RouterModule} from '@angular/router'; import {Routes} f ...
- Nginx报错 connect() failed (111: Connection refused) while connecting to upstream 的解决方法
今天访问公司的网站突然报错,抛出一些英文,提示看一下Nginx的error.log日志: cd /usr/local/nginx/logs/ 看到了error.log ,下一步 tail -n 2 ...
- 使用内省的方式操作JavaBean
import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; im ...
- Py修行路 Matplotlib 绘图及可视化模块
Matplotlib是一个强大的Python绘图和数据可视化的工具包. 安装方法:pip install matplotlib 引用方法:import matplotlib.pyplot as plt ...
- Python类(四)-多态
多态即一个接口,多种实现 按照平常直接调用 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" class Person(obje ...