2013-01-19 97 views
2

我有一個SharePoint站點,讓我瘋狂試圖刪除所有的垃圾代碼,所以我可以申請我的設計。我很好奇,如果jQuery可以從包含div的所有元素中去掉所有的CSS?逐步通過所有的孩子,並刪除所有樣式

例如,我怎麼能剝離使用jquery從這個HTML所有的CSS格式?

<div id="myID" > 
    <span class="myClass1"> 
     <span class="myClass2"></span> 
    </span> 
    <span class="myClass3"> 
     <ul class="myClass4" style="padding-left:100px;"> 
      <li>item</li> 
     </ul> 
    </span> 
</div> 
+0

[你嘗試過什麼?](http://whathaveyoutried.com)爲什麼不[使用CSS重置](http://stackoverflow.com/questions/116754/best-css-reset),而不是? –

+0

.css()但我需要一種方法來遍歷每個元素。 – simple

+0

與大多數其他jQuery方法一樣,'.css()'將應用於每個選定元素,並且您可以選擇所有元素:'$('*')' –

回答

4

試試這個(updated for the last time demo)(感謝法布里西奧爲指針):

$('#myID [style]').removeAttr('style'); 

這將剝奪<div id="myID">獨子節點的任何內嵌樣式屬性,並保留一切完好(移除這些節點上的類除了樣式外還可以有其他效果)。您可以定義一些僅適用於<div id="myID">子節點的CSS,如CSS重置。這可能是這樣的:

#myID * { 
    border: thin red solid; 
} 
+0

我喜歡它。我總是忘記* – simple

+0

這裏'*'是相當多餘的,當你使用後代選擇器而不指定標籤名時隱含 - '$('#myID [style]')'應該具有相同的效果。 –

0

嘗試:

$('#myID').find('*').attr('class', ''); 
0

要去除所有的CSS,我認爲你必須刪除所有styleclassid屬性。

這是我DEMO

這個Javascript刪除樣式屬性和階級

$("#myID *").removeAttr("style"); 
$("#myID *").each(function(){ 
    $(this).removeClass($(this).attr("class")); 
}); 
相關問題