2010-07-18 6 views
2

I가 다음 코드 조각 : this.className이 this.className 이름을 사용 "최고 currentMenu"어떻게 두 부분 클래스 설정에서 하나 개의 클래스 값을 제거하는

을 값을 포함

if((String(parent).length > 0) && (String(this.className).length > 0)) { 

, this.className에 대한 최종 결과가 단지 "최상위"가되도록 this.className, "currentMenu"에서 jQuery를 사용하여 제거하는 방법이 필요합니다.

도움이 될 것입니다.

감사합니다.

+0

사이드 노트 : 당신은'String (this.className) .length'을 필요로하지 않습니다. 'className' 속성은 이미 문자열이므로 새 문자열을 명시 적으로 만들 필요가 없습니다. 'this.className.length' 만 사용하십시오. –

답변

14

그것은 단순히 :

$(this).removeClass('currentMenu') 

참조 : .removeClass


일반 자바 스크립트에서 당신과 같이 할 수 있습니다 :

function removeClass(node, cls) { 
    if(node && node.className && node.className.indexOf(cls) >= 0) { 
     var pattern = new RegExp('\\s*' + cls + '\\s*'); 
     node.className = node.className.replace(pattern, ' '); 
    } 
} 

을 아니면 내가 당신의 문제를 이해하지 않습니다)

+0

안녕하세요, felix이 시도했지만 작동하지 않았다. 실제로 this.className을 사용한 다음 "currentMenu"클래스 이름 만 제거해야한다고 생각합니다. – tonyf

+0

@tonsils : 당신은'$ (this) .removeClass()'를 시도 했습니까? 이것은 분명히 효과가 있습니다. 당신은 틀린 일을해야합니다. 더 많은 코드를 게시 할 수 있습니까? 어떤 상황에서 이것을하고 있습니까? jQuery 함수를 호출하기 전에'$()'에'this'를 전달하는 것을 잊지 마십시오. –

+0

어쨌든 두 번째 매개 변수 만 전달하면 간단한 jQuery로 removeClass 함수를 구현할 수 있습니까? – tonyf