我需要从变量中删除所有样式属性。我正在尝试使用
someVar = $(someVar).find("*").removeAttr("style");
但是,由于某种原因,这会删除大部分代码。它只返回 10 行左右,并且遗漏了其余的内容。如果我执行以下操作
someVar = $(someVar).removeAttr("style");
它仅删除第一个样式属性并返回其他所有内容(如预期)。
someVar 变量基本上是现有 div 的克隆
var someVar = $('someDiv#someID').clone();
编辑:只是为了澄清一下,我想从 someVar 变量中的所有子元素中删除样式属性
edit2:这是一个jsfiddle https://jsfiddle.net/pscs7ttp/
最佳答案
尝试;
$('#element').clone().attr('style', '');
这会删除克隆中的样式属性,而不是原始元素。如果你想清理原始元素的属性;只需切换 clone 和 attr 调用即可。
更新:如果要从所有子元素中删除所有样式属性,请使用; (注意*)
$('#element').removeAttr('style'); // remove style from self
$('#element *').removeAttr('style'); // remove style from children
带有变量:
var variable = $('#element').clone();
// Remove children styles
variable.find('*').removeAttr('style');
// Remove self style
variable.removeAttr('style');
运行以下代码可以看到所有样式都被删除:
(摘自@MinusFour的回答并修改)
$(function(){
// Clone the element
var variable = $('#element').clone();
// Remove children styles
variable.find('*').removeAttr('style');
// Remove self style
variable.removeAttr('style');
// Output result to see if it works
$('#result').text(variable.prop('outerHTML'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="result"></pre>
<div id="element" style="padding:0;">
<div style="padding:0;"></div>
<div style="padding:0;"></div>
<div style="padding:0;"></div>
<div style="padding:0;"></div>
<div style="padding:0;"></div>
<div style="padding:0;"></div>
</div>
关于jquery 将 div 克隆到变量中并删除样式属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31774192/