2016-12-14 5 views
0

Kann nur ein leeres Stilattribut entfernt werden?Ein leeres Stilattribut entfernen

Zum Beispiel, wenn ich hinzufügen padding dynamisch auf ein Element:

$('div').css('padding', '10px'); 
<div style="padding:10px"></div> 

Dann wie entferne ich es mit jQuery

$('div').css('padding', ''); 

am firebug Blick ich mit

Ende
<div style=""></div> 

Was ich tun möchte, ist das Stilattribut nur zu entfernen, wenn es keinen Inline-Stil enthält.

+0

warum wollen Sie das tun? –

+0

Hallo! Bitte [akzeptiere meine Antwort] (http://stackoverflow.com/a/41134930/652669). –

Antwort

0

können Sie die removeAttr Methode verwenden:

if ($('div').attr('style') === '') { 
 
    $('div').removeAttr('style') 
 
}
div:before { 
 
    content: '<div> '; 
 
} 
 

 
div:after { 
 
    content: ' </div>'; 
 
} 
 

 
div:before, 
 
div:after { 
 
    font-style: Consolas; 
 
    font-size: 13px; 
 
    color: #7D2727; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div style="">no style attribute</div>

1

Sie können diesen Stil Wert mit Check versuchen:

if ($("div").attr("style") === "") 
    $("div").removeAttr("style"); 

Hoffnung diese Antwort wird Ihnen helfen.

0

Es gibt zwei Fälle zu prüfen: Wenn das Stilattribut Nein ist (undefined) oder die style Eigenschaft leer ist. Ich bemerkte, dass jQuery-Methoden removeAttr(), removeProp() nicht funktionierten. Ich verwendete DOM-Methode removeAttribute

$('p').each(function(i, e){ 
 
    
 
    var styleAttr = $(e).attr('style'); 
 

 
    if(!styleAttr || styleAttr == ''){ 
 
     
 
     e.removeAttribute('style'); // use DOM methods 
 

 
    } 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<p style="display:table;color:#ddd;">Test</p> 
 
<p style="">Test</p> 
 
<p>Test</p>

Verwandte Themen