2013-01-19 69 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")); 
}); 
相关问题