原生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 相关文章推荐
用Javascript 获取页面元素的位置的代码
Sep 25 Javascript
一个简单的js动画效果代码
Jul 20 Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
JavaScript AOP编程实例
Jun 16 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
Jun 01 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
Jul 24 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 Javascript
javascript少儿编程关于返回值的函数内容
May 27 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
Sep 16 Javascript
three.js实现圆柱体
Dec 30 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
Electron vue的使用教程图文详解
2019/07/05 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
揠苗助长教学反思
2014/02/04 职场文书
大学四年个人自我小结
2014/03/05 职场文书
个人欠款担保书
2014/05/20 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
大学体育课感想
2015/08/10 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript