使用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 完美实现圆角效果
Jul 13 HTML / CSS
使用css3匹配手机屏幕横竖状态
Jan 27 HTML / CSS
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
Feb 10 HTML / CSS
纯CSS实现设置半个字符的样式
Jul 03 HTML / CSS
纯css3实现宠物小鸡实例代码
Oct 08 HTML / CSS
通过css3的filter滤镜改变png图片的颜色的示例代码
May 06 HTML / CSS
HTML5实现表单自动验证功能实例代码
Jan 11 HTML / CSS
关于 HTML5 的七个传说小结
Apr 12 HTML / CSS
使用HTML5在网页中嵌入音频和视频播放的基本方法
Feb 22 HTML / CSS
HTML5为输入框添加语音输入功能的实现方法
Feb 06 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
Jan 31 HTML / CSS
基于HTML5 WebGL的3D机房的示例
Mar 16 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 和 COM
2006/10/09 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
js查找父节点的简单方法
2008/06/28 Javascript
javascript IFrame 强制刷新代码
2009/07/23 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
python实现大文件分割与合并
2019/07/22 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
墨西哥网上超市:Superama
2018/07/10 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
机械专业应届生求职信
2013/09/21 职场文书
新闻网站实习自我鉴定
2013/09/25 职场文书
科技节口号
2014/06/19 职场文书
在职员工证明书
2014/09/19 职场文书
小组组名及励志口号
2015/12/24 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python