我有一个包含大量html和内联style
标签的变量。我想从此html变量中删除所有style
标记。
我已经使用过这个,但它返回一个对象,我无法从这个对象中获取所有的html。我认为它只适用于单个html元素。但是我在这个HTML中有很多段落和跨度。
jQuery(content).removeAttr('style');
非常感谢您的帮助。
答案 0 :(得分:2)
答案 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"> </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)
根据我的评论,这里是工作片段,我希望它有所帮助:
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;
答案 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));