使用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下给元素添加事件的方法与代码
Aug 13 Javascript
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
基于jQuery架构javascript基础体系
Jan 01 Javascript
利用JS来控制键盘的上下左右键(示例代码)
Dec 14 Javascript
Jquery使用val方法读写value值
May 18 Javascript
详解JavaScript中void语句的使用
Jun 04 Javascript
jquery validate表单验证的基本用法入门
Jan 18 Javascript
详解webpack 如何集成第三方js库
Jun 29 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
vue实现一拉到底的滑动验证
Jul 25 Javascript
详解微信小程序轨迹回放实现及遇到的坑
Feb 02 Javascript
JavaScript实现简单拖拽效果
Sep 15 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  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
javascript 动态添加表格行
2006/06/22 Javascript
一个JavaScript继承的实现
2006/10/24 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
JS实现简单的键盘打字的效果
2015/04/24 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
高考考python编程是真的吗
2020/07/20 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
大整数数相乘的问题
2012/07/22 面试题
软件设计的目标是什么
2016/12/04 面试题
自我评价格式
2014/01/06 职场文书
家长给老师的道歉信
2014/01/13 职场文书
2014年教务处工作总结
2014/12/03 职场文书
未婚证明格式
2015/06/15 职场文书