原生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字母大小写转换实现方法总结
Nov 13 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
Jan 30 Javascript
分享15个大家都熟知的jquery小技巧
Dec 02 Javascript
浅谈js构造函数的方法与原型prototype
Jul 04 Javascript
js实现数字递增特效【仿支付宝我的财富】
May 05 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
jQuery创建及操作xml格式数据示例
May 26 jQuery
opencv 识别微信登录验证滑动块位置
Aug 07 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
浅谈Node 异步IO和事件循环
May 05 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
JavaScript如何优化逻辑判断代码详解
Jun 08 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树形菜单代码
2014/11/19 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
Python深入06——python的内存管理详解
2016/12/07 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
python matlibplot绘制3D图形
2018/07/02 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
Python爬虫教程知识点总结
2020/10/19 Python
Python学习之time模块的基本使用
2021/01/17 Python
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
高三政治教学反思
2014/02/06 职场文书
代理人委托书
2014/08/01 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
国际贸易实训报告
2014/11/05 职场文书
学雷锋倡议书
2015/01/19 职场文书
产品质量保证书范本
2015/02/27 职场文书
八年级英语教学反思
2016/02/15 职场文书
高二英语教学反思
2016/03/03 职场文书
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电