编辑:这是我将应用拆分的代码:
A在预标签内包含一个代码段
<pre class="codeSample">
public class Foo
{
}
public class Bar
{
}
</pre>
这是我的jquery代码:
var content = $('.codeSample').html();
$('codeSample').html(''); //Clear to ready for new output
var preTag = $('.codeSample');
var lines = content.split('\n');
for(i=0;i<lines.length;i++)
preTag.append('<div>' + lines[i] + '</div>');
当浏览器呈现时输出为:
public class Foo
{
}
public class Bar
{
}
两个班级之间的额外空行消失了。
编辑:
现在,以下是解决此问题的解决方案:
var content = $('.codeSample').html().replace(/\n(?=\n)/g, '\n ');
此代码查找两个连续的\ n并在它们之间插入空格。现在,当我进行拆分时,数据结果中包含空行,但它们中包含空格。任何替代品?感谢。
编辑:
好的,我会考虑自己的解决方案。谢谢你的回复。
答案 0 :(得分:1)
拆分的结果是 ['Line1','Line2','','Line3']。注意空字符串?这就是您的额外换行符 。
您需要将空字符串转换为换行符。
请参阅:http://jsfiddle.net/Xavura/hKsTj/#run
所以你想做这样的事情:
lines = lines.map(function(i) { return (i === '') ? '\n' : i; });
答案 1 :(得分:0)
如果您输出的是HTML,那么换行符将被视为空格,如果您想在HTML中换行,则使用<br />
标记。
答案 2 :(得分:0)
通过编辑,现在的问题只是空<div>
标记不会占用任何垂直空间。
可以通过在样式表中设置代码行的最小高度来解决此问题:
.codeSample div {
min-height: 1em;
}