原生js实现addclass,removeclass,toggleclasss实例


Posted in Javascript onNovember 24, 2016

jQuery操作class的方式非常强大,但是目前还有一些人不知道如何使用或者由于项目统一性的原因无法使用jquery.

在此写了一个利用原生js来实现对dom元素class的操作方法

1.addClass:为指定的dom元素添加样式
2.removeClass:删除指定dom元素的样式
3.toggleClass:如果存在(不存在),就删除(添加)一个样式
4.hasClass:判断样式是否存在

下面为一toggleClass的测试例子

<style type="text/css"> 
  div.testClass{ 
    background-color:gray; 
  } 
</style> 
 
<script type="text/javascript"> 
function hasClass(obj, cls) { 
  return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); 
} 
 
function addClass(obj, cls) { 
  if (!this.hasClass(obj, cls)) obj.className += " " + cls; 
} 
 
function removeClass(obj, cls) { 
  if (hasClass(obj, cls)) { 
    var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); 
    obj.className = obj.className.replace(reg, ' '); 
  } 
} 
 
function toggleClass(obj,cls){ 
  if(hasClass(obj,cls)){ 
    removeClass(obj, cls); 
  }else{ 
    addClass(obj, cls); 
  } 
} 
 
function toggleClassTest(){ 
  var obj = document. getElementById('test'); 
  toggleClass(obj,"testClass"); 
} 
</script> 
 
<body> 
  <div id = "test" style = "width:250px;height:100px;"> 
    sssssssssssss 
  </div> 
  <input type = "button" value = "toggleClassTest" onclick = "toggleClassTest();" /> 
</body>

以上就是小编为大家带来的原生js实现addclass,removeclass,toggleclasss实例全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
js实现交换运动效果的方法
Apr 10 Javascript
使用Raygun对Node.js应用进行错误处理的方法
Jun 23 Javascript
详解javascript遍历方式
Nov 11 Javascript
JavaScript ParseFloat()方法
Dec 18 Javascript
JQuery Mobile 弹出式登录框的实现方法
May 28 Javascript
JavaScript新增样式规则(推荐)
Jul 19 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 Javascript
js使用原型对象(prototype)需要注意的地方
Aug 28 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 Javascript
10分钟上手vue-cli 3.0 入门介绍
Apr 04 Javascript
纯javascript版日历控件
Nov 24 #Javascript
js通过classname来获取元素的方法
Nov 24 #Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 #Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 #Javascript
概述javascript在Google IE中的调试技巧
Nov 24 #Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 #Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 #Javascript
You might like
PHP代码优化的53个细节
2014/03/03 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
zend framework重定向方法小结
2016/05/28 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
python 控制语句
2011/11/03 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
主题酒店策划书
2014/01/28 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
家长通知书教师评语
2014/04/17 职场文书
卫生系统先进事迹
2014/05/13 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
我爱我班主题班会
2015/08/13 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
JS中如何优雅的使用async await详解
2021/10/05 Javascript
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android