使用html

时间:2018-01-25 22:34:29

标签: javascript jquery html css

我有一个包含大量html和内联style标签的变量。我想从此html变量中删除所有style标记。 我已经使用过这个,但它返回一个对象,我无法从这个对象中获取所有的html。我认为它只适用于单个html元素。但是我在这个HTML中有很多段落和跨度。

jQuery(content).removeAttr('style');

非常感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

您可以使用ALL选择器

jQuery('*').removeAttr('style');

https://api.jquery.com/all-selector/

答案 1 :(得分:2)

var content = `
<div style="float:left;width:75%;padding-left:30px;">
  <input type="text" name="search" id="search" autocomplete="off" placeholder="Type your Search..." style="width:95%;height:84px;border:solid 0px #fff;background-color:#fff;font-family: 'Open Sans', sans-serif;font-size:30px;font-weight:300;text-transform: uppercase;-moz-box-shadow: 0 0 0 rgba(0,0,0,0);-webkit-box-shadow: 0 0 0 rgba(0,0,0,0);box-shadow: 0 0 0 rgba(0,0,0,0);">
</div>	
<div style="padding:40px 10px 0 0;">
  <div class="hide_1024">PRESS ENTER</div><div class="show_1024">&nbsp;</div>
	<div class="closeDark" onclick="closeSearch();"></div>
</div>	
<div style="clear:both;"></div>
`;


content = jQuery('<div>' + content + '</div>').find('*').removeAttr('style').end().html();

console.log(content);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:0)

根据我的评论,这里是工作片段,我希望它有所帮助:

&#13;
&#13;
cell.tableView.reloadData()
&#13;
var html = '<div><p style="a"></p><p style="a"></p><p style="a"></p><p style="a"></p><p style="a"></p></div>';

var $html = $(html);
$html.find('*').removeAttr('style');

console.log("In:  ", html);
console.log("Out: ", $html.prop('outerHTML'));
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您是否在询问如何删除元素及其所有子元素的样式?您只需使用递归函数即可完成此操作。不需要jquery。

// Recursively remove styles from a base element.
// Depth first.
function clearStyles(element) {
  for (var i = 0; i < element.childElementCount; i++) {
    clearStyles(element.children[i]);
  };
  element.style = '';
}

clearStyles(document.getElementById(id));