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

2

text()将方法更改为html()

$(this).next().find('code').html(HTML);

JSFiddle

于 2013-10-04T07:53:35.333 回答
0

您正在使用 <code>标签,但这不会保留换行符。你需要一个<pre>标签。因此,将您的标签包装在<code>标签内<pre>,您的代码应该按原样工作 - 除非您最后不需要额外.html()的(它不会伤害任何东西,它只是不做任何事情):

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

这是一个更新的小提琴

您可能还想调整每行的前导空格,但您想要的内容取决于您想要的输出。

例如,这是一个去除前导空格并删除开头和结尾的额外换行符的版本:

$('.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 回答