2009-09-02 5 views
0

입력에 하나 이상의 CSS가 적용되었고, 사용자 정의에는 하나의 CSS가 적용되었습니다. 나는 css 기본값을 비활성화하고 다른 것은 비활성화하려고합니다. ,jQuery를 사용하여 select에서 CSS를 제거하십시오.

$j('#teste').css("max-width", ""); 

$j('#teste').removeAttr("max-width"); 

이러한 방법으로 모든 CSS를 제거 : 나는 함께 제거했습니다. jQuery로 어떻게 할 수 있습니까?

+1

removeAttr는 CSS위한 것이 아닙니다 ..이 태그의 속성입니다. http://docs.jquery.com/Attributes/removeAttr – Aziz

+4

문제는 CSS에 있고 jQuery에는 없다고 생각합니다. – rogeriopvl

답변

2

CSS 클래스를 사용하고 추가/제거하여 스타일을 제어합니다.

$('#id').addClass('foo'); 

$('#id').removeClass('foo'); 
+0

나는 그것을 시도했지만, 내가 어떻게 희망했는지 작동하지 않습니다. – Allice

+0

errr 당신은 어떻게 당신을 의미합니까. 그것은 요소에서 클래스를 제거하지 못했습니까? 어쩌면 코드를 더 게시하고 문제를 자세히 설명 할 수 있을지도 모릅니다. – redsquare

2

기본 다음에 적용하고 신속하게 제거 할 필요가있는 "사용자 정의"스타일에 대해 고유 한 클래스와 스타일이있는 경우 $ .toggleClass()가 잘 작동 할 수 있습니다.

$('selector').toggleClass('foo'); 

foo 클래스가 없으면 추가하고, 요소에 foo 클래스가 없으면 제거합니다. 당신의 스타일의 모든 인라인 인 경우는 removeAttr 방법을 사용할 수 있습니다)합니다 (jQuery toggleClass documentation

를 참조하십시오 (다른 사람이 이미 언급 한 바와 같이) 당신은 스타일 시트를 통해 적용되는 스타일을 제거 할 수 없습니다

$('selector').removeAttr('style'); 
1

. 그러나 스타일을 재정의 할 수 있습니다.

$('#teste').css("max-width", "999999px"); 

또는 가능 :

$('#teste').css("max-width", "auto"); 

되고 그건 최대 폭은 스타일 시트를 적용 할 경우 예를 들어, 값을 변경 또는 '자동'으로 설정하여 재정의 할 수 있어야한다 나는 다른 게시글에 동의한다. 아마도 최선의 방법은 아마도 CSS를 수정하고 수업을 전환하여 스타일을 전환하는 것이다.

3

이전에 $ (...). css()로 설정 한 인라인 CSS 속성을 제거하는 프로젝트 용으로 작성한 간단한 확장 기능입니다. '스타일'속성 만 변경합니다. 클래스를 통해 스타일이 설정된 경우 전체 클래스를 제거하거나 스타일을 재정의해야합니다.

$ (...)로 사용합니다. removeCss ('color', 'font-weight');

$.fn.removeCss = function() { 
    var removedCss = $.makeArray(arguments); 
    return this.each(function() { 
    var e$ = $(this); 
    var style = e$.attr('style'); 
    if (typeof style !== 'string') return; 
    style = $.trim(style); 
    var styles = style.split(/;+/); 
    var sl = styles.length; 
    for (var l = removedCss.length, i = 0; i < l; i++) { 
     var r = removedCss[i]; 
     if (!r) continue; 
     for (var j = 0; j < sl;) { 
     var sp = $.trim(styles[j]); 
     if (!sp || (sp.indexOf(r) === 0 && $.trim(sp.substring(r.length)).indexOf(':') === 0)) { 
      styles.splice(j, 1); 
      sl--; 
     } else { 
      j++; 
     } 
     } 
    } 
    if (styles.length === 0) { 
     e$.removeAttr('style'); 
    } else { 
     e$.attr('style', styles.join(';')); 
    } 
    }); 
}; 
7

난 당신이 세계 최대 폭 세트가 있고 #teste을 위해 그것을 대체하려면 같은데? 어느 쪽이든이 필요한 일을해야 다른 사람이 언급 한

$j('#teste').css("max-width", "none"); 

으로이 바로 CSS로 수행 할 수 있습니다

#teste { 
    max-width: none; 
} 
+0

그게 정답입니다. 고마워요. –

관련 문제