原生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 相关文章推荐
jquery 模式对话框终极版实现代码
Sep 28 Javascript
推荐JavaScript实现继承的最佳方式
Nov 11 Javascript
jQuery DOM删除节点操作指南
Mar 03 Javascript
javaScript事件机制兼容【详细整理】
Jul 23 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 Javascript
微信小程序三级联动选择器使用方法
May 19 Javascript
使用webpack3.0配置webpack-dev-server教程
May 29 Javascript
Vue.js轮播图走马灯代码实例(全)
May 08 Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 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
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python基于递归解决背包问题详解
2019/07/03 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
药学专业大学生个人的自我评价
2013/11/04 职场文书
个人现实表现材料
2014/02/04 职场文书
《木笛》教学反思
2014/03/01 职场文书
2015年班组工作总结
2015/04/20 职场文书
刑事法律意见书
2015/06/04 职场文书
导游词之无锡唐城
2019/12/12 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers
教你部署vue项目到docker
2022/04/05 Vue.js