jQuery源码解读之removeClass()方法分析


Posted in Javascript onFebruary 20, 2015

本文较为详细的分析了jQuery源码解读之removeClass()方法。分享给大家供大家参考。具体分析如下:

removeClass()方法和addClass()差别不大。这就来看看:

jQuery.fn.extend({

    removeClass: function( value ) {

        var classes, elem, cur, clazz, j, finalValue,

            i = 0,

            len = this.length,

            proceed = arguments.length === 0 || typeof value === "string" && value;

        if ( jQuery.isFunction( value ) ) {

            return this.each(function( j ) {

//这里就是根据你传递的移除类名的函数返回的类名,再次调用removeClass自身了。

                jQuery( this ).removeClass( value.call( this, j, this.className ) );

            });

        }

        if ( proceed ) {

            classes = ( value || "" ).match( rnotwhite ) || [];

            for ( ; i < len; i++ ) {

                elem = this[ i ];

                cur = elem.nodeType === 1 && ( elem.className ?

                    ( " " + elem.className + " " ).replace( rclass, " " ) :

                    ""

                );

                if ( cur ) {

                    j = 0;

                    while ( (clazz = classes[j++]) ) {

//区别在下面的while循环,当检索到当前DOM元素包含你要移除的类名,会用replace替换成" "

                        while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {

                            cur = cur.replace( " " + clazz + " ", " " );

                        }

                    }

//下面也是关键区别之一,判断你是否传递了要移除的类名value。如果没有传递,则finalValue="",如果此时DOM元素有类名的话,也就是条件为true,移除DOM元素的所有类名;

//如果传递了,则移除匹配的类名,移除后,没有移除的类名拼接成了cur,去掉左右两端的空格字符串,将DOM元素的类名设置成cur。

                    finalValue = value ? jQuery.trim( cur ) : "";

                    if ( elem.className !== finalValue ) {

                        elem.className = finalValue;

                    }

                }

            }

        }

        return this;

    }

});

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
Nov 30 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
Jan 24 Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
使用jQueryMobile实现滑动翻页效果的方法
Feb 04 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
Aug 07 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
BootStrap Select清除选中的状态恢复默认状态
Jun 20 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
Apr 17 Javascript
小程序实现横向滑动日历效果
Oct 21 Javascript
jQuery源码解读之addClass()方法分析
Feb 20 #Javascript
jQuery源码解读之hasClass()方法分析
Feb 20 #Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 #Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 #Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 #Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 #Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 #Javascript
You might like
php代码优化及php相关问题总结
2006/10/09 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
js中url对象化管理分析
2017/12/29 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
ES5和ES6中类的区别总结
2020/12/21 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
使用Python的判断语句模拟三目运算
2015/04/24 Python
python实现数独算法实例
2015/06/09 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
Python中的类与类型示例详解
2019/07/10 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
中式结婚主持词
2014/03/14 职场文书
安全施工标语
2014/06/07 职场文书
激励口号大全
2014/06/17 职场文书
担保书格式
2015/01/20 职场文书
工作失误检讨书范文
2015/01/26 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
超市员工管理制度
2015/08/06 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫