addClass

function addClass(obj, cls){//获取 class 内容.var obj_class = obj.className,//判断获取到的 class 是否为空, 如果不为空在前面加个'空格'.blank = (obj_class != '') ? ' ' : '';added = obj_class + blank + cls;//组合原来的 class 和需要添加的 class.obj.className = added;//替换原来的 class.
}

removeClass

function removeClass(obj, cls) {//获取 class 内容, 并在首尾各加一个空格. ex) 'abc    bcd' -> ' abc    bcd 'let obj_class = ' ' + obj.className + ' ';//将多余的空字符替换成一个空格. ex) ' abc    bcd ' -> ' abc bcd 'obj_class = obj_class.replace(/(\s+)/gi, ' '); //在原来的 class 替换掉首尾加了空格的 class. ex) ' abc bcd ' -> 'bcd 'let removed = obj_class.replace(' ' + cls + ' ', ' ');//去掉首尾空格. ex) 'bcd ' -> 'bcd'removed = removed.replace(/(^\s+)|(\s+$)/g, '');//替换原来的 class.obj.className = removed;
}

hasClass

function hasClass(obj, cls) {let obj_class = obj.className;//获取 class 内容.let obj_class_lst = obj_class.split(/\s+/);//通过split空字符将cls转换成数组.let x = 0;for (x in obj_class_lst) {if (obj_class_lst[x] === cls) {//循环数组, 判断是否包含clsreturn true;}}return false;
}

[js进阶]原生js实现addClass,removeClass,hasClass方法相关推荐

  1. 原生js实现addClass,removeClass,hasClass方法

    第一部分:原生js实现addClass,removeClass,hasClass方法 function hasClass(elem, cls) {cls = cls || '';if (cls.rep ...

  2. jQuery对类的操作.addClass()/.removeClass()/.hasClass()方法

    .addClass():给DOM元素添加类名,间接控制样式 .removeClass():移除DOM元素的样式 .hasClass():判断DOM元素是否有某类名 [例]代码功能:点击换肤.原理:设置 ...

  3. js进阶 9-14 js如何实现下拉列表多选移除

    js进阶 9-14 js如何实现下拉列表多选移除 一.总结 一句话总结: 1.js如何实现下拉列表多选移除? 把这个下拉列表中的option移除,然后加到另外一个下拉列表(文字)中去.remove方法 ...

  4. js进阶 9-5 js如何确认form的提交和重置按钮

    js进阶 9-5 js如何确认form的提交和重置按钮 一.总结 一句话总结: 1.这个并不好做:onsubmit 里面的代码必须返回false才能取消onsubmit方法的执行,所以,有return ...

  5. JS:原生JS实现message消息提示框

    简介 学习了一下如何使用原生JS(加上class类)实现message消息提示框的封装(繁琐版). 使用到的主要技术点:class类,JS. 功能点 1.四种提示状态(message success ...

  6. 原生js获取html元素属性,JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)...

    JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...

  7. React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...

  8. JS进阶篇--JS数组reduce()方法详解及高级技巧

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...

  9. JS进阶篇--JS数组reduce()方法详解及高级技巧 1

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...

最新文章

  1. 解决mysql“Access denied for user‘root‘@‘IP地址‘“问题
  2. 「欧洲AI联合实验室」ELLIS成立:誓与中美抢人才
  3. JAVA四圣降临,和平精英四圣降临模式攻略
  4. treelist自动定位行_国内首创!金川集团千米深井双定位补偿摇台投用
  5. SpringBoot简要
  6. vasp 模拟退火_科学网—vasp的分子动力学模拟 - 王达的博文
  7. Linux多线程工作笔记0001---多线程知识介绍
  8. centos7安装docker并设置开机自启以及常用命令
  9. SaaS:新智能背景下重构各个领域的生态系统
  10. 打包的时候如何做卸载程序
  11. ewebeditor高版本=5.50day
  12. Python实战——为人脸照片添加口罩
  13. 取消管理员取得所有权_win10如何获得管理员所有权?
  14. Phalcon 上传文件
  15. uIP TCP Server 运行机制分析
  16. 河北大学生命科学学院期末Biopython编程实践。利用Biopython包读取新冠病毒(id:NC_045512.2)序列(GenBank格式NC_045512.2.gb),将其中FEATURE的类
  17. JQuery和JS怎样实现淘宝购物车的添加和删除?
  18. 《Spring Boot 实战派》--13.集成NoSQL数据库,实现Elasticsearch和Solr搜索引擎
  19. RDF查询语言SPARQL
  20. 可靠性技术在医学仪器中的应用前景分析

热门文章

  1. 8-10 了不起的魔术师
  2. iview 带有Page分页组件集合的复杂表格
  3. 237孙铜个人项目事后诸葛亮
  4. css属性小结之文本
  5. 普通人如何通过互联网翻身逆袭?
  6. sql 判断教师是否拥有邮箱
  7. 2022嵌入式芯片与系统设计竞赛
  8. js html转为图片格式,Js实现将html页面或div生成图片
  9. 对于项目开发中团队领导者的作用和影响的思考
  10. 英特尔cpu支持Linux,第12 代酷睿,英特尔向 Linux 添加 Alder Lake-S 处理器的支持代码...