[JQUERY] 그것은 jQuery를 함께 인라인 스타일을 제거 할 수 있습니까?
JQUERY그것은 jQuery를 함께 인라인 스타일을 제거 할 수 있습니까?
해결법
-
1.업데이트 : 다음과 같은 솔루션이 작동하는 동안, 훨씬 쉽게 방법이있다. 아래를 참조하십시오.
업데이트 : 다음과 같은 솔루션이 작동하는 동안, 훨씬 쉽게 방법이있다. 아래를 참조하십시오.
여기에 내가 무엇을 최대 온, 그리고 나는이 유용 희망 - 당신이나 다른 사람에게 :
$('#element').attr('style', function(i, style) { return style && style.replace(/display[^;]+;?/g, ''); });
이는 인라인 스타일을 제거합니다.
나는 이것이 당신이 원하는 무엇 확실하지 않다. 이미 지적했듯이, 쉽게 $ ( '# 요소')에 의해 수행되는, 그것을 무시하고 싶었다. CSS ( '디스플레이', '인라인').
내가 무엇을 찾고 있었어요 완전히 인라인 스타일을 제거하는 솔루션이다. 나는 내가 일시적으로 일부 인라인 CSS 값을 설정해야하지만, 나중에 제거 할 어디 쓰고 있어요 플러그인이 필요합니다; 나는 스타일이 다시 장악하려는. 나는 인라인 다시 퍼팅 후 원래의 모든 값을 저장하고 그것을 할 수 있지만,이 솔루션은 나에게 많은 청소기를 느낀다.
여기에는 플러그인 형식으로되어 있습니다 :
(function($) { $.fn.removeStyle = function(style) { var search = new RegExp(style + '[^;]+;?', 'g'); return this.each(function() { $(this).attr('style', function(i, style) { return style && style.replace(search, ''); }); }); }; }(jQuery));
당신이 당신의 스크립트 이전 페이지에서이 플러그인을 포함하는 경우, 당신은 단지 호출 할 수 있습니다
$('#element').removeStyle('display');
그 트릭을 할해야합니다.
업데이트 : 지금이 모든 것이 헛된 것을 깨달았다. 당신은 단순히 빈으로 설정할 수 있습니다 :
$('#element').css('display', '');
그것은 자동으로 제거됩니다.
여기에 문서에서 인용입니다 :
내가 jQuery를 여기에 어떤 마법을하고 있다고 생각하지 않는다; 스타일의 객체가 기본적으로이 작업을 수행 보인다.
-
2..removeAttr ( "스타일")는 단지 전체 스타일 태그를 제거하는 ...
.removeAttr ( "스타일")는 단지 전체 스타일 태그를 제거하는 ...
.attr ( "스타일") 값을 테스트하고 인라인 스타일이 존재하는지 ...
.attr ( "스타일", NEWVALUE는) 다른 뭔가로 설정하기
-
3.(jQuery를에 의해 생성 된) 인라인 스타일을 제거하는 가장 쉬운 방법은 다음과 같습니다
(jQuery를에 의해 생성 된) 인라인 스타일을 제거하는 가장 쉬운 방법은 다음과 같습니다
$(this).attr("style", "");
인라인 코드는 사라와 스타일을 적응해야 개체는 CSS 파일에 미리 정의.
나를 위해 일했다!
-
4.당신은 jQuery를 CSS의 방법을 사용하여 스타일을 설정할 수 있습니다 :
당신은 jQuery를 CSS의 방법을 사용하여 스타일을 설정할 수 있습니다 :
$('something:visible').css('display', 'none');
-
5.이 같은의 플러그인 jQuery를 만들 수 있습니다 :
이 같은의 플러그인 jQuery를 만들 수 있습니다 :
jQuery.fn.removeInlineCss = (function(){ var rootStyle = document.documentElement.style; var remover = rootStyle.removeProperty // modern browser || rootStyle.removeAttribute // old browser (ie 6-8) return function removeInlineCss(properties){ if(properties == null) return this.removeAttr('style'); proporties = properties.split(/\s+/); return this.each(function(){ for(var i = 0 ; i < proporties.length ; i++) remover.call(this.style, proporties[i]); }); }; })();
용법
$(".foo").removeInlineCss(); //remove all inline styles $(".foo").removeInlineCss("display"); //remove one inline style $(".foo").removeInlineCss("color font-size font-weight"); //remove several inline styles
-
6.(당신의 이름을 저주하고 잠에서 당신을 살인 미래 디자이너의 원인이됩니다) 게으른 방법 :
(당신의 이름을 저주하고 잠에서 당신을 살인 미래 디자이너의 원인이됩니다) 게으른 방법 :
#myelement { display: none !important; }
면책 조항 :이 접근 방식을 옹호하지 않지만, 그것은 확실히 게으른 방법입니다.
-
7.
$('div[style*=block]').removeAttr('style');
-
8.
$("[style*=block]").hide();
-
9.당신이 스타일의 속성에서 속성을 제거하려면 - 그냥 뭔가 다른 설정하지 - 당신이 removeProperty () 메소드를 사용합니다 :
당신이 스타일의 속성에서 속성을 제거하려면 - 그냥 뭔가 다른 설정하지 - 당신이 removeProperty () 메소드를 사용합니다 :
document.getElementById('element').style.removeProperty('display');
최신 정보: 나는 다른 방법과 그 결과에 놀러 대화 형 바이올린을했습니다. 분명히,별로 빈 문자열로 설정의 차이의 설정 가짜 가치와 removeProperty ()에있다. 그들은 같은 대체 모든 결과 - 중 미리 주어진 CSS 규칙 또는 브라우저의 기본값입니다.
-
10.경우 디스플레이가 당신의 스타일에서 유일한 매개 변수이며, 모든 스타일을 제거하기 위해이 명령을 실행할 수 있습니다 :
경우 디스플레이가 당신의 스타일에서 유일한 매개 변수이며, 모든 스타일을 제거하기 위해이 명령을 실행할 수 있습니다 :
$('#element').attr('style','');
수단 귀하의 요소가 전에처럼 보였다 경우 그 :
<input id="element" style="display: block;">
이제 요소는 다음과 같이 표시됩니다
<input id="element" style="">
-
11.여기에 내가 jQuery를에 그 플러그를 쓴 인라인 스타일 선택 필터입니다.
여기에 내가 jQuery를에 그 플러그를 쓴 인라인 스타일 선택 필터입니다.
$("div:inlineStyle(display:block)") // will select all divs with an inline style of display: block set
귀하의 경우에는이를 같이 사용할 수 있습니다 :
$("div:inlineStyle(display:block)").hide();
-
12.{(el.css을 $ 높이 : '', '여백 탑': '' });
{(el.css을 $ 높이 : '', '여백 탑': '' });
기타...
그냥 2 PARAM 비워 둘!
-
13.no로 플러그인을 변경하지 것은 더 이상 스타일을 적용합니다. 그게 훨씬 더가-후 스타일을 제거하는 것보다 것이다.
no로 플러그인을 변경하지 것은 더 이상 스타일을 적용합니다. 그게 훨씬 더가-후 스타일을 제거하는 것보다 것이다.
-
14.$ ( "# 요소") CSS ({디스플레이 : "없음"}).;
$ ( "# 요소") CSS ({디스플레이 : "없음"}).;
처음에 나는 CSS에서 인라인 스타일을 제거하려하지만, 디스플레이와 같은 작업과 새로운 스타일하지 않습니다 : 없음을 덮어 수 없습니다. 그러나 JQuery와에이처럼 작동합니다.
-
15.나는 폭 속성과 유사한 문제가 있었다. ! 나는 코드에서 중요한을 제거 couldnt는, 그것을 새로운 템플릿이 스타일을 필요로하기 때문에 나는 요소에 ID (modalstyling)를 첨가하고, 나중에 내가 템플릿 코드를 다음 추가 :
나는 폭 속성과 유사한 문제가 있었다. ! 나는 코드에서 중요한을 제거 couldnt는, 그것을 새로운 템플릿이 스타일을 필요로하기 때문에 나는 요소에 ID (modalstyling)를 첨가하고, 나중에 내가 템플릿 코드를 다음 추가 :
<script type="text/javascript"> $('#modalstyling').css('width', ''); //Removal of width !important $('#modalstyling').width('75%'); //Set custom width </script>
from https://stackoverflow.com/questions/2465158/is-it-possible-to-remove-inline-styles-with-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] JQuery와 동적으로 자바 스크립트 파일을로드 (0) | 2020.10.20 |
---|---|
[JQUERY] 자바 스크립트 / jQuery를 함께 리디렉션에 POST 데이터를 전송? [복제] (0) | 2020.10.20 |
[JQUERY] 최고의 크로스 브라우저의 방법은 JQuery와 함께 CTRL + S를 캡처? (0) | 2020.10.20 |
[JQUERY] 계속하기 전에 자바 스크립트 절전 / 대기 [중복] (0) | 2020.10.20 |
[JQUERY] 화면 너비 미만 960 픽셀 경우 무언가를 (0) | 2020.10.20 |