原生javascript实现 hasClass addClass removeClass

function hasClass(elem, cls) {
  cls = cls || ‘‘;
  if (cls.replace(/\s/g, ‘‘).length == 0) return false;
  return new RegExp(‘ ‘ + cls + ‘ ‘).test(‘ ‘ + elem.className + ‘ ‘);
}

function addClass(ele, cls) {
  if (!hasClass(elem, cls)) {
    ele.className = ele.className == ‘‘ ? cls : ele.className + ‘ ‘ + cls;
  }
}

function removeClass(ele, cls) {
  if (hasClass(elem, cls)) {
    var newClass = ‘ ‘ + elem.className.replace(/[\t\r\n]/g, ‘‘) + ‘ ‘;
    while (newClass.indexOf(‘ ‘ + cls + ‘ ‘) >= 0) {
      newClass = newClass.replace(‘ ‘ + cls + ‘ ‘, ‘ ‘);
    }
    elem.className = newClass.replace(/^\s+|\s+$/g, ‘‘);
  }
}

原文地址:https://www.cnblogs.com/chefweb/p/9299285.html

时间: 2024-11-29 09:45:38

原生javascript实现 hasClass addClass removeClass的相关文章

原生JavaScript实现的addclass,removeclass,hasclass,toggleclass,getbyclass

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>addclass,removeclass,hasclass,toggleclass,getbyclass</title> </head> <body> <div class="div1" id="b

原生JS实现hasClass,addClass,removeClass

1.hasClass function hasClass(elem, cls){     cls = cls || '';     if(cls.replace(/\s/g, '').length == 0) return false;     return new RegExp(' ' + cls + ' ').test(' ' + elem.className + ' '); } 2.addClass function addClass(elem, cls){     if(!hasClas

原生JavaScript实现hasClass、addClass、removeClass、toggleClass

兼容IE6+,因IE6.IE7.IE8不支持Array.prototype.indexOf()和String.prototype.trim(),分别用Polyfill实现支持.详细:indexOf https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOftrim: https://developer.mozilla.org/en-US/docs/Web/JavaSc

hasClass addClass removeClass

//函数有class function hasClass(ele,cls){ return -1<(" "+ele.className+" ").indexOf(" "+cls+" ") } //添加class function addClass(ele,cls){ if((" "+ele.className+" ").indexOf(" "+cls+"

原生JS实现addClass,removeClass,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 ad

原生javascript添加和删除class

在操作class时,往往需要叠加或者删除一个class,这里用原生javascript写了一种方法,以供参考. 这里是html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/19

你可能不需要 jQuery!使用原生 JavaScript 进行开发

jquery 转原生js 的一些方法 / jq转js / jquery与js. 很多的 JavaScript 开发人员,包括我在内,都很喜欢 jQuery.因为它的简单,因为它有很多丰富的插件可供使用,和其它优秀的工具一样,jQuery 让我们开发人员能够更轻松的开发网站和 Web 应用. 然而,另一方面,作为前端开发的基础框架,jQuery 包含大量的兼容性代码和扩展功能,其中有很多在你的整个项目中可能都不会用到.其实如果你只是针对现代浏览器,很多功能使用原生的 JavaScript 就可以实

使用原生JavaScript实现对select增加option标签并附加value属性

好久没有写原生的东西了,今天写了一个小项目里面包含着option选项,所以我决定使用原生JavaScript动态生成, 本着互联网分享精神,我将本篇文章分享给大家. html代码(就是一个select) <select name="" id="reg-select"></select> json数据 var json = [ { "cc": "86", "code": "C

原生javascript实现Tab切换

tab切换在各大主流页面有广泛的应用,今天来分享一个用原生javascript来实现类似京东购物边栏的TAB.对于正在使用web前端开发(http://www.maiziedu.com/course/web/)网站的朋友,是非常有用的哦. 首先以下是一段边栏HTML框架代码 <body> <div class="wrap"> <div id="left"> <ul id="leftList"> &l