使用JS实现jQuery的addClass, removeClass, hasClass函数功能


Posted in Javascript onOctober 31, 2014

废话不多说,直接上代码

function addClass(obj, cls){

    var obj_class = obj.className,//获取 class 内容.

    blank = (obj_class != '') ? ' ' : '';//判断获取到的 class 是否为空, 如果不为空在前面加个'空格'.

    added = obj_class + blank + cls;//组合原来的 class 和需要添加的 class.

    obj.className = added;//替换原来的 class.

}

 

function removeClass(obj, cls){

    var obj_class = ' '+obj.className+' ';//获取 class 内容, 并在首尾各加一个空格. ex) 'abc        bcd' -> ' abc        bcd '

    obj_class = obj_class.replace(/(\s+)/gi, ' '),//将多余的空字符替换成一个空格. ex) ' abc        bcd ' -> ' abc bcd '

    removed = obj_class.replace(' '+cls+' ', ' ');//在原来的 class 替换掉首尾加了空格的 class. ex) ' abc bcd ' -> 'bcd '

    removed = removed.replace(/(^\s+)|(\s+$)/g, '');//去掉首尾空格. ex) 'bcd ' -> 'bcd'

    obj.className = removed;//替换原来的 class.

}

 

function hasClass(obj, cls){

    var obj_class = obj.className,//获取 class 内容.

    obj_class_lst = obj_class.split(/\s+/);//通过split空字符将cls转换成数组.

    x = 0;

    for(x in obj_class_lst) {

        if(obj_class_lst[x] == cls) {//循环数组, 判断是否包含cls

            return true;

        }

    }

    return false;

}
Javascript 相关文章推荐
Javascript之文件操作
Mar 07 Javascript
指定js可访问其它域名的cookie的方法
Sep 18 Javascript
js对象数组按属性快速排序
Jan 31 Javascript
Javascript拓展String方法小结
Jul 08 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
详解vue.js 开发环境搭建最简单攻略
Jun 12 Javascript
js + css实现标签内容切换功能(实例讲解)
Oct 09 Javascript
javascript计算对象长度的方法
Oct 25 Javascript
JS关于刷新页面的相关总结
May 09 Javascript
基于Vue 服务端Cookies删除的问题
Sep 21 Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 Javascript
JsRender实用入门教程
Oct 31 #Javascript
JsRender for object语法简介
Oct 31 #Javascript
JsRender for index循环索引用法详解
Oct 31 #Javascript
javascript常用函数归纳整理
Oct 31 #Javascript
让html页面不缓存js的实现方法
Oct 31 #Javascript
js读取cookie方法总结
Oct 31 #Javascript
jQuery获取对象简单实现方法小结
Oct 30 #Javascript
You might like
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
PHP打印输出函数汇总
2016/08/28 PHP
php读取本地json文件的实例
2018/03/07 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
原生js实现日历效果
2020/03/02 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python使用Scrapy爬取妹子图
2015/05/28 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
分享6个隐藏的python功能
2017/12/07 Python
Python实现快速计算词频功能示例
2018/06/25 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
zooplus波兰:在线宠物店
2019/07/21 全球购物
旅游管理专业个人求职信范文
2013/12/24 职场文书
物流仓储计划书
2014/01/10 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
领导接待方案
2014/03/13 职场文书
关于旅游的活动方案
2014/08/15 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书