原生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 相关文章推荐
script标签的 charset 属性使用说明
Dec 04 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
JavaScript/jQuery 表单美化插件小结
Feb 14 Javascript
ECMAScript5(ES5)中bind方法使用小结
May 07 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
详解Web使用webpack构建前端项目
Sep 23 Javascript
原生JS实现Ajax跨域请求flask响应内容
Oct 24 Javascript
React教程之封装一个Portal可复用组件的方法
Jan 02 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
Aug 02 Javascript
js+cavans实现图片滑块验证
Sep 29 Javascript
Vue自定义表单内容检查rules实例
Oct 30 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
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python模拟登录验证码(代码简单)
2016/02/06 Python
python中模块查找的原理与方法详解
2017/08/11 Python
python http基本验证方法
2018/12/26 Python
python实现超市商品销售管理系统
2019/11/22 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
车间工艺员岗位职责
2013/12/09 职场文书
书法培训心得体会
2014/01/05 职场文书
学生实习介绍信
2014/01/15 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
党员四风剖析材料
2014/08/27 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
检讨书格式
2019/04/25 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android