1

スタイルガイドの作成に役立つ小さな jQuery スクリプトを作成しました。このスクリプトは、HTML の一部をコピーしてエスケープし、ドキュメントとして印刷するために使用されます。ただし、私の問題は、html の改行を無効にすることです。エスケープされた HTML が、入力したとおりにフォーマットされることを望みます。そんなことがあるものか?

$('.documentation-element').each(function() {
  var HTML = $(this).html();
  $(this).next().find('code').text(HTML).html();
});

ここで完全な例を参照してください: http://jsfiddle.net/tolborg/nr7fs/

4

2 に答える 2

0

タグを使用しています <code>が、改行が保持されません。<pre>そのためのタグが必要です。<code>したがって、タグをタグ内にラップする<pre>と、コードはそのまま機能するはずです-ただし、最後に余分なものは必要あり.html()ません(何も害はなく、何もしません) :

$('.documentation-element').each(function() {
    var HTML = $(this).html();
    $(this).next().find('code').text(HTML);
});

これが更新された fiddleです。

各行の先頭の空白を微調整することもできますが、そこに何が必要かは、必要な出力によって異なります。

たとえば、先頭の空白を削除し、先頭と末尾の余分な改行も削除するバージョンを次に示します。

$('.documentation-element').each(function() {
    var HTML = $(this).html().trim().replace( /\n\s+/, '\n' );
    $(this).next().find('code').text(HTML);
});
于 2013-10-04T08:13:29.170 に答える