删除元素及其所有子元素的内联CSS的最快方法?

时间:2015-12-10 18:57:29

标签: javascript jquery html css

我想从元素及其所有子元素中删除所有内联CSS。

现在我这样做:



$('#element').attr('style', '');
$('#element').find('div').attr('style', '');
$('#element').find('a').attr('style', '');
$('#element').find('span').attr('style', '');
$('#element').find('p').attr('style', '');

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div id="element" style="color:red">
  <div id="childrenA" style="background: red">
    <a href="#" style="text-decoration:underline">bla bla</a>
  </div>
  <div id="childrenB" style="width: 100px"></div>
  <span style="height:50px"><p style="overflow:hidden"></p></span>
</div>
&#13;
&#13;
&#13;

但这是很多代码....有更快的方法吗?

3 个答案:

答案 0 :(得分:1)

你可以:

$('#element, #element *').attr('style','');

你可以从css选择器中获得很多,在这里阅读更多关于它的信息

  

你必须记住的30个CSS选择器,   here.

答案 1 :(得分:1)

最简单的方法是:

$('#element, #element *').removeAttr('style');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div id="element" style="color:red">
  <div id="childrenA" style="background: red">
    <a href="#" style="text-decoration:underline">bla bla</a>
  </div>
  <div id="childrenB" style="width: 100px"></div>
  <span style="height:50px"><p style="overflow:hidden"></p></span>
</div>

字面上 - 找到#element及其下的所有元素,然后删除他们可能拥有的所有style属性。

答案 2 :(得分:1)

您可以使用universal selector选择所有后代元素,然后使用.addBack() method添加回初始元素:

$('*', '#element').addBack().removeAttr('style');

或:

$('#element').find('*').addBack().removeAttr('style');