jquery 将 div 克隆到变量中并删除样式属性

标签 jquery

我需要从变量中删除所有样式属性。我正在尝试使用

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', '');

这会删除克隆中的样式属性,而不是原始元素。如果你想清理原始元素的属性;只需切换 cloneattr 调用即可。

更新:如果要从所有子元素中删除所有样式属性,请使用; (注意*)

$('#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/

相关文章:

jquery - 如何禁用 jQuery UI 对话框上的按钮?

jquery - 尝试向SRC添加宽度和高度属性

javascript - jQuery 动画函数可能存在语法错误

c# - 如何在ASP.NET中实现Blueimp jQuery文件上传

javascript - DataTables.js 添加行时请求未知参数

javascript - Durandal 登录页面显示

jquery - 模态内部的 Angular ui-date

Javascript:DOM操作后返回选择(突出显示的文本)

javascript - define是不是定义了jquery.mobile.custom.js?

javascript - 如何将参数传递给回调函数而不执行它