1
1
2
2
angular . element . prototype . addClass = function ( cssClasses ) {
3
+ var x , y , cssClass , el , splitClasses , existingClasses ;
3
4
if ( cssClasses && cssClasses != 'ng-scope' && cssClasses != 'ng-isolate-scope' ) {
4
- for ( var x = 0 ; x < this . length ; x ++ ) {
5
- if ( this [ x ] . setAttribute ) {
6
- this [ x ] . classList . add . apply ( this [ x ] . classList , cssClasses . split ( / \s + / ) ) ;
5
+ for ( x = 0 ; x < this . length ; x ++ ) {
6
+ el = this [ x ] ;
7
+ if ( el . setAttribute ) {
8
+
9
+ if ( cssClasses . indexOf ( ' ' ) < 0 ) {
10
+ el . classList . add ( cssClasses ) ;
11
+ } else {
12
+ existingClasses = ( ' ' + ( el . getAttribute ( 'class' ) || '' ) + ' ' )
13
+ . replace ( / [ \n \t ] / g, " " ) ;
14
+ splitClasses = cssClasses . split ( ' ' ) ;
15
+
16
+ for ( y = 0 ; y < splitClasses . length ; y ++ ) {
17
+ cssClass = splitClasses [ y ] . trim ( ) ;
18
+ if ( existingClasses . indexOf ( ' ' + cssClass + ' ' ) === - 1 ) {
19
+ existingClasses += cssClass + ' ' ;
20
+ }
21
+ }
22
+ el . setAttribute ( 'class' , existingClasses . trim ( ) ) ;
23
+ }
7
24
}
8
25
}
9
26
}
10
27
return this ;
11
28
} ;
12
29
13
30
angular . element . prototype . removeClass = function ( cssClasses ) {
31
+ var x , y , splitClasses , cssClass , el ;
14
32
if ( cssClasses ) {
15
- for ( var x = 0 ; x < this . length ; x ++ ) {
16
- if ( this [ x ] . setAttribute ) {
17
- this [ x ] . classList . remove . apply ( this [ x ] . classList , cssClasses . split ( / \s + / ) ) ;
33
+ for ( x = 0 ; x < this . length ; x ++ ) {
34
+ el = this [ x ] ;
35
+ if ( el . getAttribute ) {
36
+ if ( cssClasses . indexOf ( ' ' ) < 0 ) {
37
+ el . classList . remove ( cssClasses ) ;
38
+ } else {
39
+ splitClasses = cssClasses . split ( ' ' ) ;
40
+
41
+ for ( y = 0 ; y < splitClasses . length ; y ++ ) {
42
+ cssClass = splitClasses [ y ] ;
43
+ el . setAttribute ( 'class' , (
44
+ ( " " + ( el . getAttribute ( 'class' ) || '' ) + " " )
45
+ . replace ( / [ \n \t ] / g, " " )
46
+ . replace ( " " + cssClass . trim ( ) + " " , " " ) ) . trim ( )
47
+ ) ;
48
+ }
49
+ }
18
50
}
19
51
}
20
52
}
21
53
return this ;
22
- } ;
54
+ } ;
0 commit comments