2016-12-14 53 views
0

是否可以只刪除空的樣式屬性?刪除空的樣式屬性

例如,如果我添加動態填充到一個元素:

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

然後我用jQuery刪除它像

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

綜觀螢火我最終

<div style=""></div> 

我想要做的是僅當不包含任何內聯樣式時才刪除樣式屬性。

+0

你爲什麼要這麼做? –

+0

你好!請[接受我的回答](http://stackoverflow.com/a/41134930/652669)。 –

回答

0

可以使用removeAttr方法:

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

您可以用支票樣式值試試這個:

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

希望這個答案會幫助你。

0

有兩種情況可以檢查:style屬性爲no時(undefined)或style屬性爲空。我注意到jQuery方法removeAttr()removeProp()沒有工作。我用DOM方法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>