복붙노트

[JQUERY] 그것은 jQuery를 함께 인라인 스타일을 제거 할 수 있습니까?

JQUERY

그것은 jQuery를 함께 인라인 스타일을 제거 할 수 있습니까?

해결법


  1. 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. 2..removeAttr ( "스타일")는 단지 전체 스타일 태그를 제거하는 ...

    .removeAttr ( "스타일")는 단지 전체 스타일 태그를 제거하는 ...

    .attr ( "스타일") 값을 테스트하고 인라인 스타일이 존재하는지 ...

    .attr ( "스타일", NEWVALUE는) 다른 뭔가로 설정하기


  3. 3.(jQuery를에 의해 생성 된) 인라인 스타일을 제거하는 가장 쉬운 방법은 다음과 같습니다

    (jQuery를에 의해 생성 된) 인라인 스타일을 제거하는 가장 쉬운 방법은 다음과 같습니다

    $(this).attr("style", "");
    

    인라인 코드는 사라와 스타일을 적응해야 개체는 CSS 파일에 미리 정의.

    나를 위해 일했다!


  4. 4.당신은 jQuery를 CSS의 방법을 사용하여 스타일을 설정할 수 있습니다 :

    당신은 jQuery를 CSS의 방법을 사용하여 스타일을 설정할 수 있습니다 :

    $('something:visible').css('display', 'none');
    

  5. 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. 6.(당신의 이름을 저주하고 잠에서 당신을 살인 미래 디자이너의 원인이됩니다) 게으른 방법 :

    (당신의 이름을 저주하고 잠에서 당신을 살인 미래 디자이너의 원인이됩니다) 게으른 방법 :

    #myelement 
    {
        display: none !important;
    }
    

    면책 조항 :이 접근 방식을 옹호하지 않지만, 그것은 확실히 게으른 방법입니다.


  7. 7.

    $('div[style*=block]').removeAttr('style');
    

  8. 8.

    $("[style*=block]").hide();
    

  9. 9.당신이 스타일의 속성에서 속성을 제거하려면 - 그냥 뭔가 다른 설정하지 - 당신이 removeProperty () 메소드를 사용합니다 :

    당신이 스타일의 속성에서 속성을 제거하려면 - 그냥 뭔가 다른 설정하지 - 당신이 removeProperty () 메소드를 사용합니다 :

    document.getElementById('element').style.removeProperty('display');
    

    최신 정보: 나는 다른 방법과 그 결과에 놀러 대화 형 바이올린을했습니다. 분명히,별로 빈 문자열로 설정의 차이의 설정 가짜 가치와 removeProperty ()에있다. 그들은 같은 대체 모든 결과 - 중 미리 주어진 CSS 규칙 또는 브라우저의 기본값입니다.


  10. 10.경우 디스플레이가 당신의 스타일에서 유일한 매개 변수이며, 모든 스타일을 제거하기 위해이 명령을 실행할 수 있습니다 :

    경우 디스플레이가 당신의 스타일에서 유일한 매개 변수이며, 모든 스타일을 제거하기 위해이 명령을 실행할 수 있습니다 :

    $('#element').attr('style','');
    

    수단 귀하의 요소가 전에처럼 보였다 경우 그 :

    <input id="element" style="display: block;">
    

    이제 요소는 다음과 같이 표시됩니다

    <input id="element" style="">
    

  11. 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. 12.{(el.css을 $ 높이 : '', '여백 탑': '' });

    {(el.css을 $ 높이 : '', '여백 탑': '' });

    기타...

    그냥 2 PARAM 비워 둘!


  13. 13.no로 플러그인을 변경하지 것은 더 이상 스타일을 적용합니다. 그게 훨씬 더가-후 스타일을 제거하는 것보다 것이다.

    no로 플러그인을 변경하지 것은 더 이상 스타일을 적용합니다. 그게 훨씬 더가-후 스타일을 제거하는 것보다 것이다.


  14. 14.$ ( "# 요소") CSS ({디스플레이 : "없음"}).;

    $ ( "# 요소") CSS ({디스플레이 : "없음"}).;

    처음에 나는 CSS에서 인라인 스타일을 제거하려하지만, 디스플레이와 같은 작업과 새로운 스타일하지 않습니다 : 없음을 덮어 수 없습니다. 그러나 JQuery와에이처럼 작동합니다.


  15. 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>
    
  16. from https://stackoverflow.com/questions/2465158/is-it-possible-to-remove-inline-styles-with-jquery by cc-by-sa and MIT license