jQuery源码解读之removeClass

作者: 计算机网络  发布:2019-09-06

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

jQuery源码解读之removeClass()方法深入分析,jqueryremoveclass

本文较为详细的剖释了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程序设计有所协理。

本文较为详细的解析了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程序设计有所协理。

您可能感兴趣的篇章:

  • jQuery中removeClass()方法用法实例
  • 利用JS达成jQuery的addClass, removeClass, hasClass函数成效
  • jQuery使用toggleClass方法动态增进删减Class样式的法子
  • Jquery展现、隐敝成分以及充足删减样式
  • jquery 怎么样动态增加、删除class样式方法介绍
  • jQuery使用removeClass方法删除成分钦定Class的不二法门

本文由今晚开什么码发布于计算机网络,转载请注明出处:jQuery源码解读之removeClass

关键词: