2

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);
  }
});

何か案は?ありがとう!

4

2 に答える 2

3

removeAttr()この目的では正常に機能するはずです。

問題はセレクターにあると思われます-#post_content提供したサンプルHTMLにはありません。

于 2013-02-12T20:14:29.097 に答える
2
$("#post_content *").removeAttr("style");
prompt("Ctrl+C to copy HTML code", $("#post_content").html());

http://jsfiddle.net/WHRST/

contenteditable要素のすべての子孫を選択する必要があります。したがって、選択で(*)を使用します。すべての子孫を取得したら、.removeAttr( "style")を呼び出すことができ、コレクション内のすべての要素から削除されます。

于 2013-02-12T20:20:20.603 に答える