前言
类名操作是前端工程师编码过程中最频繁的操作之一,关于类名的操作基本可以总结为以下四种:
- addClass: 为指定的dom元素添加样式
- removeClass: 删除指定dom元素的样式
- toggleClass: 如果存在(不存在),就删除(添加)一个样式
- hasClass: 判断样式是否存在
jQuery
最简单的方式当然是直接引入万能的jQuery。
jQuery中有addClass()
,removeClass()
,toggleClass()
,hasClass()
四种方法,而且兼容性非常好。
原生JS
当然并不是所有人都喜欢使用jQuery的,并且在一些场景下引入jQuery并不是很合适。所以下面这种方法就使用原生JS来实现。
|
轻量级脚本
如果你比较懒,不想手写的话,可以引入一个轻量级脚本——classie.js。
classie.js是一个非常强大的超级轻量级脚本,它允许您很容易添加、删除、切换,和检查DOM中的类。 classie.js 带给你简单的实用性, 不会让我们的脚本变得臃肿。毕竟它仅仅只有82行代码, 1.872 kb大小。
使用方法
|
附上Github主页地址。
HTML5 classList
如果你点开classie.js的Github主页会发现该项目已经停止更新了,项目作者推荐大家使用全新的HTML5 API——classList。
FireFox浏览器和Chrome浏览器对classList
的支持性都很好,至于IE浏览器,从IE10才开始支持。在手机端,需要Android 3+或 iOS Safari 5.1+。
以上四种方法在classList
中对应的分别是:add()
,remove()
,toggle()
,contains()
。
除了这四个,还有:
- length 属性,表示元素类名的个数,只读;
- item() 支持一个参数,为类名的索引,返回对应的类名。
最佳方案
如果项目依赖jQuery的话,那就直接使用jQuery的相关方法。在其他情况下呢,推荐大家使用classie.js
。
首先,非常轻量,仅仅只有82行代码, 1.872 kb大小。
其次,兼容性好,能做到classList
做不到的。
最后,性能很好,如果看classie.js
的源码会发现它是优先使用classList
的。