使用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 03 HTML / CSS
css3和jquery实现自定义checkbox和radiobox组件
Apr 22 HTML / CSS
一款利用css3的鼠标经过动画显示详情特效的实例教程
Dec 29 HTML / CSS
html5 touch事件实现页面上下滑动效果【附代码】
Mar 10 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
Jul 05 HTML / CSS
HTML5语音识别标签写法附图
Nov 18 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
Mar 12 HTML / CSS
谈一谈HTML5本地存储技术
Mar 02 HTML / CSS
html5本地存储 localStorage操作使用详解
Sep 20 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
Dec 08 HTML / CSS
CSS list-style-type属性使用方法
May 21 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多层数组和对象的转换)
2011/05/18 PHP
深入PHP curl参数的详解
2013/06/17 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
jquery动态添加删除(tr/td)
2015/02/09 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
python删除字符串中指定字符的方法
2018/08/13 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
《灰椋鸟》教学反思
2014/04/27 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
高中同学会致辞
2015/08/01 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery