逐步完成所有孩子并删除所有样式

时间:2013-01-19 00:03:11

标签: jquery

我有一个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>

4 个答案:

答案 0 :(得分:4)

试试这个(updated for the last time demo)(感谢Fabrício的指针):

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

这将剥离仅<div id="myID">的子节点的任何内联样式属性,并保留其他所有内容(删除这些节点上的类除了样式之外还可以有其他效果)。您可以定义一些仅适用于<div id="myID">的子节点的CSS,如CSS重置。这可能是这样的:

#myID * {
  border: thin red solid;
}

答案 1 :(得分:0)

尝试:

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

答案 2 :(得分:0)

要删除所有css,我认为您必须删除所有style classid属性。

这是我的DEMO

此Javascript删除样式属性和类

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

答案 3 :(得分:0)

从其他答案中得出的问题是,并非所有子级都会被处理,或者没有class的属性=classname将保留。

这对我有用:

$("#myID *")                   // select all children of elements that containt id="myID"
  .each(function(){            // iterate through all children
  $(this).removeAttr("class"); // remove class attribute from each child
});
console.log($("#myID").html());