使用HTML5里的classList操作CSS类


Posted in HTML / CSS onJune 28, 2016

在JavaScript和JavaScript工具库里征战多年,我经常有这样的遐想:什么时候现代浏览器里能提供一些辅助方法和类库,替代那些JavaScript工具库,比如jQuery,让我们用浏览器原生的方法替代它们。我知道浏览器必定会向这个方向改进,但这个进化过程不会很迅速,而且各种浏览器需要共同做这样的革新,火狐浏览器、谷歌浏览器、特别是IE,只有当这些主流浏览器都具备了这样的功能,我们的愿望才算真正的实现。好消息是,其中有一个这样的功能已经被加入到了HTML5 API里:classList

在HTML5 API里,页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增、删除、修改节点上的CSS类。使用classList,程序员还可以用它来判断某个节点是否被赋予了某个CSS类。

Element.classList

这个classList对象里有很多有用的方法:

XML/HTML Code复制内容到剪贴板
  1. {   
  2.  length: {number}, /* # of class on this element */   
  3.  add: function() { [native code] },   
  4.  contains: function() { [native code] },   
  5.  item: function() { [native code] }, /* by index */   
  6.  remove: function() { [native code] },   
  7.  toggle: function() { [native code] }   
  8. }   
  9.   

正如你上面看到的,Element.classList类很小,但里面的每个方法都很有用。

新增CSS类

使用add方法,你可以往页面元素是新增一个或多个css类:

myDiv.classList.add('myCssClass');

删除一个CSS类

使用remove方法,你可以删除单个CSS类:

myDiv.classList.remove('myCssClass');

你可以在这个方法里一次传入多个类名,用空格分开,但执行的结果很有可能不是你预期的。

反转CSS类的有无

myDiv.classList.toggle('myCssClass'); //现在是增加
myDiv.classList.toggle('myCssClass'); //现在是删除

这个方法的作用就是,当myDiv元素上没有这个CSS类时,它就新增这个CSS类;如果myDiv元素已经有了这个CSS类,它就是删除它。就是反转操作。

检查是否含有某个CSS类

myDiv.classList.contains('myCssClass'); //returns true or false

目前所有的现代浏览器(火狐浏览器,谷歌浏览器等)都支持这个classList类,所以,相信新型的javaScript类库里都会使用classList类来操作页面CSS类,而不需像以前一样去分析元素节点的class属性!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
纯CSS3发光分享按钮的实现教程
Sep 06 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
Nov 16 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
Jan 04 HTML / CSS
HTML5中的Article和Section元素认识及使用
Mar 22 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
Jun 08 HTML / CSS
HTML5实现锚点时请使用id取代name
Sep 06 HTML / CSS
HTML5新增的表单元素和属性实例解析
Jul 07 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
Jun 17 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
html5 figure和figcaption的使用方法
Sep 10 HTML / CSS
Html5 canvas画图白板踩坑
Jun 01 HTML / CSS
纯CSS实现一个简单步骤条的示例代码
Jul 15 HTML / CSS
HTML5 canvas基本绘图之图形组合
Jun 27 #HTML / CSS
HTML5不支持标签和新增标签详解
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之文字渲染
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之绘制曲线
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之图形变换
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之填充样式实现
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之绘制线条
Jun 27 #HTML / CSS
You might like
PHP输入流php://input介绍
2012/09/18 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
nodejs批量修改文件编码格式
2015/01/22 NodeJs
javascript常见数据验证插件大全
2015/08/03 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
Python学习笔记之解析json的方法分析
2017/04/21 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
介绍一下RMI的基本概念
2016/12/17 面试题
初中生学习生活的自我评价
2013/11/20 职场文书
设计师个人求职信范文
2014/02/02 职场文书
经典安踏广告词
2014/03/21 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
房屋租赁协议书
2014/04/10 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
部队个人年终总结
2015/03/02 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
Python函数中apply、map、applymap的区别
2021/11/27 Python
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android