>  기사  >  웹 프론트엔드  >  jQuery 소스코드 해석_jquery의 RemoveClass() 메소드 분석

jQuery 소스코드 해석_jquery의 RemoveClass() 메소드 분석

WBOY
WBOY원래의
2016-05-16 16:13:261355검색

본 글에서는 jQuery 소스코드 해석의 RemoveClass() 메소드를 좀 더 자세히 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

removeClass() 메소드는 addClass()와 크게 다르지 않습니다. 살펴보겠습니다:

코드 복사 코드는 다음과 같습니다.
jQuery.fn.extend({
​ RemoveClass: 함수( 값 ) {
        var 클래스, elem, cur, clazz, j, finalValue,
            i = 0,
            len = this.length,
              진행 = 인수.길이 === 0 || 값 유형 === "문자열" && 값;
            if ( jQuery.isFunction( value ) ) {
               return this.each(function( j ) {
//클래스 이름을 제거하기 위해 전달한 함수에서 반환된 클래스 이름이 있으며, RemoveClass 자체가 다시 호출됩니다.
jQuery( this ).removeClass( value.call( this, j, this.className ) );
            });
}
           if ( 계속 ) {
클래스 = ( 값 || "" ).match( rnotwhite ) ||                 for ( ; i                  elem = this[i];
Cur = elem.nodeType === 1 && ( elem.className ?
                       ( " " elem.className " " ).replace( rclass, " " ) :
""
);
만약 (현재) {
j = 0;
동안 ((Clazz = 클래스 [J]) {
//차이점은 아래 while 루프에 있습니다. 현재 DOM 요소가 검색되고 제거하려는 클래스 이름이 포함되어 있으면 이를 " "
으로 바꾸는 데 사용됩니다. While (Cur.indexof ("Clazz") & GT; = 0) {
Cur = cur.replace( " " clazz " ", " " );
|                  }
//제거할 클래스 이름의 값을 전달했는지 여부를 확인하는 주요 차이점 중 하나는 다음과 같습니다. 전달되지 않은 경우 finalValue="", 이때 DOM 요소에 클래스 이름이 있는 경우, 즉 조건이 true인 경우 DOM 요소의 모든 클래스 이름을 제거합니다. //전달되면 일치하는 클래스 이름을 제거합니다. 제거 후 제거되지 않은 클래스 이름은 cur에 이어져 왼쪽과 오른쪽 끝의 공백 문자열이 제거되고 DOM 요소의 클래스 이름은 현재로 설정합니다.
                          finalValue = value ? jQuery.trim( cur ) : "";
If ( elem.className !== finalValue ) {
에게                  }
                }
            }
}
         이것을 돌려주세요;
}
});


이 기사가 모든 사람의 jQuery 프로그래밍에 도움이 되기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.