原生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 对话框和状态栏使用说明
Oct 25 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
Jan 09 Javascript
浏览器窗口加载和大小改变事件示例
Feb 27 Javascript
加随机数引入脚本不让浏览器读取缓存
Sep 04 Javascript
通过设置CSS中的position属性来固定层的位置
Dec 14 Javascript
在 Angular 中实现搜索关键字高亮示例
Mar 21 Javascript
使用js获取伪元素的content实例
Oct 24 Javascript
javascript用rem来做响应式开发
Jan 13 Javascript
JS实现在线ps功能详解
Jul 31 Javascript
微信小程序实现写入读取缓存详解
Aug 30 Javascript
vue学习笔记之给组件绑定原生事件操作示例
Feb 27 Javascript
vue中axios封装使用的完整教程
Mar 03 Vue.js
纯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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
JQuery live函数
2010/12/24 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
vue实现通讯录功能
2018/07/14 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python和C语言混合编程实例
2014/06/04 Python
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
python进行两个表格对比的方法
2018/06/27 Python
用python生成1000个txt文件的方法
2018/10/25 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
不假外出检讨书
2014/01/27 职场文书
销售员岗位职责
2015/02/10 职场文书
MySQL连接控制插件介绍
2021/09/25 MySQL
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python