使用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 相关文章推荐
使用GruntJS构建Web程序之构建篇
Jun 04 Javascript
JavaScript实现的链表数据结构实例
Apr 02 Javascript
javascript手风琴下拉菜单实现代码
Nov 12 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
Aug 04 Javascript
arcgis for js 修改infowindow样式的方法
Nov 02 Javascript
详谈JS中数组的迭代方法和归并方法
Aug 11 Javascript
3种vue路由传参的基本模式
Feb 22 Javascript
微信小程序实现工作时间段选择
Feb 15 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 Javascript
vue+canvas实现拼图小游戏
Sep 18 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连接数据库代码应用分析
2011/05/29 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
Python中如何引入第三方模块
2020/05/27 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
详解python对象之间的交互
2020/09/29 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
2014年五一促销活动方案
2014/03/09 职场文书
李培根演讲稿
2014/05/22 职场文书
大学计划书范文800字
2014/08/14 职场文书
环保主题班会教案
2015/08/13 职场文书
学生会自荐信
2019/05/16 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python