基于JavaScript实现类名的添加与移除


Posted in Javascript onApril 23, 2017

方法1:使用className属性;

方法2:使用classList API;

//用于匹配类名存在与否
function reg(name){
 return new RegExp('(^|\\s)'+name+'(\\s+|$)');
}
//hasClass addClass removeClass toogleClass
var hasClass,addClass,removeClass;
if('classList' in document.documentElement){
 hasClass=function(obj,cname){
  return obj.classList.contains(cname);
 };
 addClass=function(obj,cname){
  obj.classList.add(cname);
 };
 removeClass=function(obj,cname){
  obj.classList.remove(cname);
 };
 toggleClass=function(obj,cname){
  obj.classList.toggle(cname);
 };
}else{
 hasClass=function(obj,cname){
  return reg(cname).test(obj.className);
 };
 addClass=function(obj,cname){
  if(!hasClass(obj,cname)){
   obj.className=obj.className+' '+cname; 
  }
 };
 removeClass=function(obj,cname){
  obj.className=obj.className.replace(reg(cname),' ');
 };
 toggleClass=function(obj,cname){
  var toggle=hasClass(obj,cname)?removeClass:addClass;
  toggle(obj,cname);
 };
}
//true
document.body.classList.toString() === document.body.className;

注意:这种方法每次只能传一个类名且不能级联操作,而jquery下面的类似操作是可以操作多个类名的。

所以扩展一下:

//addClass
DOMTokenList.prototype.addClass=function(str){
 tts.split(' ').forEach(function(c){
 this.add(c);
 }.bind(this));
 return this;
}
//removeClass
DOMTokenList.prototype.removeClass=function(str){
 tts.split(' ').forEach(function(t){
 this.remove(t);
 }.bind(this));
 return this;
}
//removeClass
DOMTokenList.prototype.toggleClass=function(str){
 tts.split(' ').forEach(function(t){
 this.toggle(t);
 }.bind(this));
 return this;
}

以上所述是小编给大家介绍的JavaScript实现类名的添加与移除方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
快速学习AngularJs HTTP响应拦截器
Dec 31 Javascript
jquery日历插件e-calendar升级版
Nov 10 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
JS构造一个html文本内容成文件流形式发送到后台
Jul 31 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
May 29 Javascript
微信小程序左滑删除实现代码实例
Sep 16 Javascript
vue在路由中验证token是否存在的简单实现
Nov 11 Javascript
源码分析Vue.js的监听实现教程
Apr 23 #Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 #Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 #Javascript
Node.js中的require.resolve方法使用简介
Apr 23 #Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
Apr 22 #Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 #Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
Apr 22 #Javascript
You might like
PHP Mysql编程之高级技巧
2008/08/27 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Django组件content-type使用方法详解
2019/07/19 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
小学国庆节活动方案
2014/02/11 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
小学英语复习计划
2015/01/19 职场文书
音乐教师个人总结
2015/02/06 职场文书
暑假打工感想
2015/08/07 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
python​格式化字符串
2022/04/20 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python