357357 $ . fn . extend ( {
358358 addClass : function ( value ) {
359359 var i = 0 ,
360- j = 0 ,
360+ j ,
361361 cur = '' ,
362362 elem = null ,
363363 classes = [ ] ,
364364 clazz = '' ,
365365 len = this . length ,
366+ finalValue = '' ,
366367 proceed = typeof value === 'string' && value ;
367368
368369 if ( proceed ) {
369370 classes = value . match ( rnotwhite ) ;
370371 for ( ; i < len ; i ++ ) {
371372 elem = this [ i ] ;
372373
373- cur = elem . nodeType === 1 && elem . className ? ' ' + elem . className + ' ' : '' ;
374+ cur = elem . nodeType === 1 && ( elem . className ? ' ' + elem . className + ' ' : '' ) ;
374375 if ( cur ) {
376+ j = 0 ;
377+
378+ while ( ( clazz = classes [ j ++ ] ) ) {
379+ if ( cur . indexOf ( ' ' + clazz + ' ' ) < 0 ) {
380+ cur += clazz + ' ' ;
381+ }
382+ }
383+
384+ finalValue = $ . trim ( cur ) ;
385+ if ( elem . className !== finalValue ) { // 为了防止重绘
386+ elem . className = finalValue ;
387+ }
388+ }
389+ }
390+ }
391+
392+ return this ;
393+ } ,
394+ removeClass : function ( value ) {
395+ var i = 0 ,
396+ j ,
397+ cur = '' ,
398+ elem = null ,
399+ classes = [ ] ,
400+ clazz = '' ,
401+ len = this . length ,
402+ finalValue = '' ,
403+ proceed = arguments . length === 0 || typeof value === 'string' && value ;
404+
405+ if ( proceed ) {
406+ classes = value . match ( rnotwhite ) ;
407+ for ( ; i < len ; i ++ ) {
408+ elem = this [ i ] ;
375409
410+ cur = elem . nodeType === 1 && ( elem . className ? ' ' + elem . className + ' ' : '' ) ;
411+ if ( cur ) {
412+ j = 0 ;
413+
414+ while ( ( clazz = classes [ j ++ ] ) ) {
415+ while ( cur . indexOf ( ' ' + clazz + ' ' ) >= 0 ) {
416+ cur = cur . replace ( ' ' + clazz + ' ' , ' ' ) ;
417+ }
418+ }
419+
420+ finalValue = value ? $ . trim ( cur ) : '' ;
421+ if ( elem . className !== finalValue ) { // 为了防止重绘
422+ elem . className = finalValue ;
423+ }
376424 }
377425 }
378426 }
427+
428+ return this ;
429+ } ,
430+ toggleClass : function ( ) {
431+
379432 }
380433 } ) ;
381434
384437// 2014-04-21 : 准备开发第一版
385438// 2014-04-30 : 完成$.type, $.each等方法
386439// 2014-05-04 : 增加$.get方法
387- // 2014-05-05 : 以精减的方式添加:append,prepend,before,after方法,但存在tbody问题未处理;添加addClass
440+ // 2014-05-05 : 以精减的方式添加:append,prepend,before,after方法,但存在tbody问题未处理;添加addClass,removeClass
0 commit comments