从样式属性中清除HTML代码

时间:2013-02-12 20:03:54

标签: javascript jquery html contenteditable

我有contenteditable并且可以选择复制用户文本的HTML代码。我想删除浏览器添加到某些元素的style=""属性。例如:

<h2>what</h2><p><span style="color: rgb(54, 54, 54); font-size: 18px; line-height: 1.77777778em;">what is&nbsp;this</span><span style="color: rgb(54, 54, 54); font-size: 18px; line-height: 1.77777778em;">&nbsp;</span></p><p></p>

我如何使用jQuery做到这一点?

我已经尝试但是它不起作用:

$('#post_content').keydown(function(e) {
  // if ctrl + e
  if ((e.metaKey || e.ctrlKey) && e.keyCode == 69) {
    var html = $('#post_content').removeAttr('style').html();
    prompt("Ctrl+C to copy HTML code", html);
  }
});

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:3)

removeAttr() should work fine for this purpose

我怀疑问题是您的选择器 - #post_content不在您提供的示例HTML中。

答案 1 :(得分:2)

$("#post_content *").removeAttr("style");
prompt("Ctrl+C to copy HTML code", $("#post_content").html());

http://jsfiddle.net/WHRST/

您必须选择所有可信元素的后代。所以你在select中使用了(*),一旦你拥有了所有可以调用.removeAttr(“style”)的后代,它就会从集合中的每个元素中删除。