[jquery] jQuery를 사용하여 요소의 CSS 속성을 어떻게 설정 해제합니까?

다음을 사용하여 특정 요소에 CSS 값을 설정하면

$('#element').css('background-color', '#ccc');

해당 요소 별 값을 설정 해제하고 다음과 같이 계단식 값을 사용할 수 있기를 원합니다.

$('#element').css('background-color', null);

하지만 그 구문은 작동하지 않는 것 같습니다. 다른 구문을 사용하여 가능합니까?

편집 : 값은 상위 요소에서 상속되지 않습니다. 원래 값은 요소 수준 선택기에서 가져옵니다. 혼동을 드려 죄송합니다!



답변

로부터 의 jQuery 문서 :

스타일 속성의 값을 빈 문자열 (예 $('#mydiv').css('color', ''):)로 설정하면 HTML 스타일 속성, jQuery의 .css()메소드 또는 style속성 의 직접적인 DOM 조작을 통해 이미 직접 적용된 경우 요소에서 해당 속성이 제거 됩니다. 그러나 스타일 시트 또는 <style>요소 에서 CSS 규칙과 함께 적용된 스타일은 제거되지 않습니다 .


답변

나는 당신도 할 수 있다고 생각합니다.

$('#element').css('background-color', '');

그것이 display필드를 표시 / 숨기기 위해 plain-old-javascript 의 속성에 대해 오래 전에 사용했던 작업 입니다.


답변

실제로 내가 잘못되었다고 생각한 구문 null이 작동하는 것 같습니다. 선택기가 부적절하게 구성되어 요소가 생성되지 않았습니다. 오!


답변

이 시도:

$('#element').css('background-color', 'inherit');


답변

이것이 ‘필터’를 위해 IE 8에서 작동하지 않는 것처럼 보이므로 이것을 사용해야했습니다 (fadeIn 콜백에서).

$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));

분명히, CSS가 효과를 발휘할 수 있도록 빈 인라인 필터 선언을 제거해야했습니다. 다른 인라인 규칙이있어서 스타일 속성을 제거 할 수 없었습니다.


답변

도움이된다면 큰 따옴표로 문제를 추가합니다.

$('#element').css("border-color", "");

동안 작동하지 않습니다

$('#element').css('border-color', '');

공장


답변